Je travaille actuellement sur une migration système (de Hibernate 3.2.2.GA avec JPA1 à Hibernate 3.6 avec JPA2.) La migration elle-même est très simple, il n'y a pas de mises à jour majeures à faire (en fait, je ne pense pas .. il n'y a pas du tout)Hibernate 3.5 ou 3.6 sans prise en charge de l'annotation @Any?
le problème que je suis confronté est que veille prolongée lance une exception à l'exécution, se plaignant des annotations @Any le stacktrace est le suivant:
Caused by: java.lang.UnsupportedOperationException: any not supported yet
at org.hibernate.ejb.metamodel.AttributeFactory.determineAttributeMetadata(AttributeFactory.java:452)
at org.hibernate.ejb.metamodel.AttributeFactory.buildAttribute(AttributeFactory.java:93)
at org.hibernate.ejb.metamodel.MetadataContext.wrapUp(MetadataContext.java:183)
at org.hibernate.ejb.metamodel.MetamodelImpl.buildMetamodel(MetamodelImpl.java:66)
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:84)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:902)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:74)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225)
donc cela signifie que @Any ou @ManyToAny ne sont plus supportés par hibernate Ceci est bizarre car la documentation (de 3.3 à 3.6) mentionne comment utiliser l'annotation @Any et AFAIK il n'y a pas de version hibernate qui déprécie cet annot ation.
J'ai vérifié le code source d'hibernate 3.5 et la vérification des annotations @Any y est également présente, donc il lance aussi la même exception.
Avez-vous des solutions de contournement pour ce problème?
merci beaucoup!
Ils ne sont pas pris en charge que si vous utilisez JPA interface. Avec 'SessionFactory', ils fonctionnent bien. – axtavt
c'est étrange ... ça marche sur hibernate 3.2 avec jpa1. allez comprendre. Je vais rester avec 3.2 pour l'instant =/ –
C'est assez clair. JPA2 inclut le support du métamodèle. Comme il n'est pas clair comment représenter les attributs '@ Any 'dans un métamodèle, ils doivent interdire de tels attributs (il peut être déduit de la stacktrace). – axtavt