Hibernate 3.5或3.6不支持@Any注释?

Luc*_*ira 7 java hibernate jpa hibernate-mapping

我正在进行系统迁移(从带有JPA1的hibernate 3.2.2.GA到带有JPA2的hibernate 3.6.迁移本身非常简单,没有重大更新要做(事实上,我认为没有任何一个).

我面临的问题是hibernate在运行时抛出异常,抱怨@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)
Run Code Online (Sandbox Code Playgroud)

所以这意味着hibernate不再支持@Any或@ManyToAny.这很奇怪,因为文档(从3.3到3.6)提到了如何使用@Any注释和AFAIK,没有hibernate版本折旧这个注释.

我检查了hibernate 3.5源代码,@ Any注释检查也存在,所以它也抛出相同的异常.

你们有没有解决这个问题的方法?

非常感谢!

jpk*_*ing 5

您可以尝试将其添加到您的Hibernate属性中:

hibernate.ejb.metamodel.generation=disabled
Run Code Online (Sandbox Code Playgroud)

这应该禁用元模型生成,避免您看到的异常.(编辑的属性值,如评论中指出的'禁用')