Précédent   Forum du club des développeurs et IT Pro > Dotnet > Accès aux données > NHibernate
NHibernate Forum d'entraide sur l'utilisation du mappeur objet/relationnel NHibernate.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/11/2011, 09h52   #1
Xploit
Nouveau Membre du Club
 
Étudiant
Inscription : mai 2009
Messages : 102
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2009
Messages : 102
Points : 39
Points : 39
Par défaut [NH 3.0] Mapping hbm.xml - Champ id en trop

Bonjour à tou(te)s,

J'ai un projet utilisant NH3.0. Je teste le mapping avec un projet de test Nunit qui me crée la base de test à chaque fois et donc les tables définies dans les fichiers de mapping hbm.xml

Il se trouve que j'ai un message d'erreur :

Citation:
Test 'FirstSolution.Tests.ReferenceRepository_Fixture.Can_add_new_ref' failed: NHibernate.HibernateException : Can't create table 'spring.#sql-d08_8a' (errno: 150)
----> MySql.Data.MySqlClient.MySqlException : Can't create table 'spring.#sql-d08_8a' (errno: 150)
Mes tables basiques (sans clé étrangère) sont correctement créées mais les tables avec clé étrangere ont un champ id qui est ajouté en plus à la fin de la table...alors qu'il est inutile...

Voici par exemple un mapping qui à la création me rajoute un champ id non voulu dans la table

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping assembly="FirstSolution" namespace="FirstSolution.Domain" xmlns="urn:nhibernate-mapping-2.2">
  <class name="stations_sta" table="stations_sta" lazy="true" >
    <id name="STA_ID">
      <column name="STA_ID" sql-type="int(11)" not-null="true" />
      <generator class="identity" />
    </id>
    <property name="STA_NAME">
      <column name="STA_NAME" sql-type="varchar(45)" not-null="true" />
    </property>
 
    <many-to-one insert="false" update="false" lazy="false" name="STA_FAC">
      <column name="STA_FAC" sql-type="int(11)" not-null="true" />
    </many-to-one>
    <!--
    <property name="STA_FAC">
      <column name="STA_FAC" sql-type="int(11)" not-null="true" />
    </property>
    -->
    <bag name="fb_serials_srls" inverse="true" cascade="none">
      <key column="" />
      <one-to-many class="fb_serials_srl" />
    </bag>
    <bag name="l_station_addresses_numalloc_sans" inverse="true" cascade="none">
      <key column="" />
      <one-to-many class="l_station_addresses_numalloc_san" />
    </bag>
    <bag name="l_station_serials_numalloc_ssns" inverse="true" cascade="none">
      <key column="" />
      <one-to-many class="l_station_serials_numalloc_ssn" />
    </bag>
  </class>
</hibernate-mapping>
Quelqu'un aurait un avis, une piste ?
Merci d'avance.

MAJ - Pb résolu - il fallait remplir la balise Key column pour éviter qu'il crée un champ supplémentaire
Xploit est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h33.


 
 
 
 
Partenaires

Hébergement Web