Bonsoir tout le monde,
J'ai un problème récurant que j'ai déjà résolu la semaine passé mais je ne sais pas du tout comment...
J'ai trois classes java (Famille, Légume, Variété). La persistance pour Famille et Légume fonctionne, et j'ai rajouté variété qui est en relation avec espèce.
Pour faire le mapping j'utilise les annotations. J'ai repris tel quel le code utilisé pour l'association (famille-espèce) pour recréer (espèce-variété)
problème: A l’exécution j’obtiens à tous les coups le message:
[...]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Infos: updating schema févr. 29, 2012 11:29:39 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata Infos: table not found: Famille févr. 29, 2012 11:29:39 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata Infos: table not found: Legume févr. 29, 2012 11:29:39 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata Infos: table not found: Variete févr. 29, 2012 11:29:39 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata Infos: table not found: Famille févr. 29, 2012 11:29:39 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata Infos: table not found: Legume févr. 29, 2012 11:29:39 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata Infos: table not found: Variete févr. 29, 2012 11:29:39 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute Grave: Unsuccessful: alter table Variete add index FK7155B814892CD433 (legume), add constraint FK7155B814892CD433 foreign key (legume) references Legume (id) févr. 29, 2012 11:29:39 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute Grave: La colonne 'legume' de type BLOB est utilisée dans une définition d'index sans longueur d'index févr. 29, 2012 11:29:39 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute Infos: schema update complete
Le problème récurant: Au lieu de créer un champ avec la clé étrangère il me fait un blob...
Je n'ai rien trouvé quant à la création non volontaire de blob... plutôt des gens qui n'arrivaient pas... Je cherche deseperément quelqun qui aurait une piste...
Voici pour illustration un peut de code:
Famille
Legume
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 @Entity public class Famille extends ObjetEditableEnListe implements Serializable{ private static final long serialVersionUID = 6514064917284167571L; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="famille_id") private Integer id; @Column(name="nom") private String nom; @OneToMany(mappedBy="famille", targetEntity=Legume.class) private List<Legume> legumes; ...
Variete
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 @Entity public class Legume extends ObjetEditableEnListe implements Serializable{ private static final long serialVersionUID = 8569954172569890266L; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="id") private Integer id; @Column(name="nom") private String nom; @ManyToOne(cascade = CascadeType.MERGE) private Famille famille; @Column(name="dureeCulture") private Integer dureeCulture; @Column(name="rangees") private Integer rangees; @Column(name="persistant") private Boolean persistant; @OneToMany(mappedBy="legume", targetEntity=Variete.class) private List<Variete> variete; ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 @Entity public class Variete extends ObjetEditableEnListe implements Serializable{ private static final long serialVersionUID = 3632119313028239454L; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="id_Variete") private Integer id; @Column(name="nom") private String nom; @Column(name="precoce") private Boolean precoce; @Column(name="semiPrecoce") private Boolean semiPrecoce; @Column(name="tardive") private Boolean tardive; private Legume legume; @ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH}) public Legume getLegume() { return legume; } ...
Et le fichier Hibernate:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost/test</property> <property name="hibernate.connection.username"></property> <property name="hibernate.connection.password"></property> <property name="show_sql">true</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">1</property> <!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <property name="hibernate.hbm2ddl.auto">update</property> <mapping class="ch.RotationsOptimizer.tm.model.Variete"/> <mapping class="ch.RotationsOptimizer.tm.model.Legume"/> <mapping class="ch.RotationsOptimizer.tm.model.Famille"/> </session-factory> </hibernate-configuration>
Si quelqu’un a des explications, c'est avec plaisir que je les revirerai
Merci d'avance et bonne soirée
Partager