[ALG 3] Projet 2 - Hibernate Issue

Voir le sujet précédent Voir le sujet suivant Aller en bas

[ALG 3] Projet 2 - Hibernate Issue

Message  Nicky le Ven 23 Déc 2011, 11:06

Bonjour les gens,

Afin peu etre de faire économiser quelque heures à mes collègues je viens partager un bug et sa solution avec hibernate et le reverse engineering.

Si vous obtenez ...
Code:
Initial SessionFactory creation failed.java.lang.ClassCastException: org.hibernate.type.StringType cannot be cast to org.hibernate.type.VersionType
Exception in thread "main" java.lang.ExceptionInInitializerError
   at smartappphone.db.HibernateUtil.<clinit>(HibernateUtil.java:27)
   at smartappphone.ui.Main.main(Main.java:23)
Caused by: java.lang.ClassCastException: org.hibernate.type.StringType cannot be cast to org.hibernate.type.VersionType
   at org.hibernate.tuple.PropertyFactory.buildVersionProperty(PropertyFactory.java:84)
   at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:168)
   at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
   at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
   at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
   at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
   at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
   at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
   at smartappphone.db.HibernateUtil.<clinit>(HibernateUtil.java:23)
   ... 1 more
Java Result: 1

...ce joli message d'erreur

Sachez qu'il provient d'une erreur situer dans un code XML générer par le reverse engineering.

Le problème survient dès que vous avez avec un attribut appelé "version" dans votre db.

Dans le xml correspondant a cet attribut il générera alors:

Code:
        <version name="version" type="string">
            <column name="version" length="30" not-null="true" />
        </version>

au lieux de

Code:
        <property name="version" type="string">
            <column name="version" length="30" not-null="true" />
        </property>

Il suffit donc d'éditer manuellement le fichier XML correspondant.

Je ne sais pas si il y a une convention de nommage qui "interdit" l'utilisation du nom version. Si oui et bien je n'étais pas au courant.

Je ne pense pas que le bug soit propre à l'environnement mais au cas où:

OpenSuse 12.1
NetBeans 7.0.1
JDK 1.7_01

Bon P2

EDIT: PS: je laisse le soin @pbt de corriger mon orthographe Very Happy

Nicky

Nombre de messages : 300
Age : 29
Prénom : Pierre
Statut : Tout fini ! 2012
Localisation : Bruxelles / Chimay
Date d'inscription : 18/03/2008

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum