7

現在、システムの移行に取り組んでいます(JPA1を使用したhibernate3.2.2.GAからJPA2を使用したhibernate3.6へ。移行自体は非常に単純で、大きな更新はありません(実際、まったく)。

私が直面している問題は、休止状態が実行時に例外をスローし、@Anyアノテーションについて不平を言うことです。スタックトレースは次のとおりです。

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)

つまり、@Anyまたは@ManyToAnyはhibernateでサポートされなくなったことを意味します。ドキュメント(3.3から3.6)には@Anyアノテーションの使用方法が記載されており、AFAIKにはこのアノテーションを評価する休止バージョンがないため、これは奇妙なことです。

hibernate 3.5ソースコードをチェックしましたが、@ Anyアノテーションチェックもあるので、同じ例外がスローされます。

この問題の回避策はありますか?

どうもありがとう!

4

2 に答える 2

5

これをHibernateプロパティに追加してみてください:

hibernate.ejb.metamodel.generation=disabled

これにより、メタモデルの生成が無効になり、表示されている例外が回避されます。(コメントで指摘されているように、プロパティ値を編集して「無効」と表示)

于 2011-01-17T12:59:34.010 に答える
1

または、hibernate.properties を使用していない場合は<property name="hibernate.ejb.metamodel.generation" value="disabled" />、persistence.xml に追加します。

于 2013-08-08T11:48:16.393 に答える