Domanda

Al momento sto lavorando su un sistema di migrazione (da 3.2.2.GA Hibernate con JPA1 per il letargo 3.6 con JPA2. La migrazione in sé è molto semplice, non ci sono aggiornamenti importanti da fare (in realtà, non lo faccio credo che ci sia alcuna a tutti).

Il problema che sto affrontando è che Hibernate genera un'eccezione in fase di esecuzione, lamentando le annotazioni @Any. Lo StackTrace è il seguente:

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)

Quindi vuol dire che @Any o @ManyToAny non sono più supportati da Hibernate. Questo è strano perché la documentazione (3,3-3,6) cita come utilizzare l'annotazione @Any e per quanto ne so non esiste una versione di ibernazione che si deprezza questa annotazione.

Ho controllato hibernate 3,5 codice sorgente e il controllo di annotazione @Any è anche lì, in modo che getta anche la stessa eccezione.

fare voi ragazzi avete alcuna soluzione per questo problema?

grazie mille!

È stato utile?

Soluzione

La prego quindi di cercare di aggiungere questo alle proprietà di Hibernate:

hibernate.ejb.metamodel.generation=disabled

Questo dovrebbe disabilitare la generazione metamodello, evitando l'eccezione che state vedendo. (Valore della proprietà Edited dire 'disabile' come fuori punte nei commenti)

Altri suggerimenti

In alternativa, se non si utilizza hibernate.properties, aggiungi <property name="hibernate.ejb.metamodel.generation" value="disabled" /> al tuo persistence.xml

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top