IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

Erreur de configuration du mapping par annotation [Mapping]


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2008
    Messages : 41
    Par défaut Erreur de configuration du mapping par annotation
    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
    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;
    	...
    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
    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;
    	...
    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

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2008
    Messages : 41
    Par défaut
    Personne?? Même pas une piste?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2008
    Messages : 41
    Par défaut
    C'est bon j'ai trouvé la réponse!! Si elle peut servire à quelqun un jour..

    Le problème était que l'annotation ManyToOne était sur l'accesseur au lieu de l'attribut...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private Legume legume;
     
    @ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
    public Legume getLegume() {
    	return legume;
    }
    au lieu de d'être sur l'attribut...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
    private Legume legume;
     
    public Legume getLegume() {
    	return legume;
    }
    A noter que la technique d'annoter les accesseurs est vraiment foireuse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Debutant] Probleme Mapping par Annotations
    Par didje251 dans le forum Hibernate
    Réponses: 0
    Dernier message: 16/11/2010, 17h58
  2. erreur SQLQuery: Curseur non renvoyé par Query
    Par luluofmars dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/05/2006, 17h00
  3. [Apache 2] Configurer le répertoire par défaut
    Par sylsau dans le forum Apache
    Réponses: 5
    Dernier message: 22/02/2006, 15h46
  4. [VB.NET] Erreur de configuration
    Par toniolol dans le forum ASP.NET
    Réponses: 2
    Dernier message: 04/12/2005, 11h35
  5. [Configuration] remplacement des é par des i
    Par illegalsene dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 18/10/2005, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo