我目前正在进行系统迁移(从JPA1的hibernate 3.2.2.GA到JPA2的hibernate 3.6,迁移本身非常简单,没有大的更新要做(事实上,我不认为。有任何的话)Hibernate 3.5或3.6不支持@Any注释?
我现在面临的问题是,休眠抛出运行时异常,抱怨@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版本贬低这个annot通货膨胀。
我检查了hibernate 3.5的源代码,@Any注释检查也存在,所以它也会抛出相同的异常。
你们有没有针对这个问题的解决方法?
非常感谢!
只有在使用JPA他们不支持接口。通过`SessionFactory`,它们工作正常。 – axtavt 2010-11-24 19:18:29
这很奇怪......它使用jpa1在hibernate 3.2上工作。去搞清楚。我会坚持3.2现在=/ – 2010-11-24 19:35:05