Вопрос

В настоящее время я работаю над системной миграцией (от Hibernate 3.2.2.ga с JPA1 для Hibernate 3.6 с JPA2. Сама миграция очень проста, нет серьезных обновлений (на самом деле, я не думаю, что есть любой вообще).

Проблема, с которой я сталкиваюсь состоит в том, что гибернат бросает исключение во время выполнения, жалуясь на аннотации @ANY. Stacktrace следующий:

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 больше не поддерживаются гибернатом. Это странно, потому что документация (с 3,3 до 3,6) упоминает, как использовать аннотацию @any and Anotation и Afaik нет версии Hibernate, которая обесценивает эту аннотацию.

Я проверил исходный код Hibernate 3.5, и проверка аннотации @any также есть, поэтому он также бросает одно и то же исключение.

Вы, ребята, у вас есть обходной путь для этой проблемы?

большое спасибо!

Это было полезно?

Решение

Не могли бы вы добавить это в свои свойства Hibernate:

hibernate.ejb.metamodel.generation=disabled

Это должно отключить генерацию метамодели, избегая исключения, которое вы видите. (Отредактированная стоимость недвижимости, чтобы сказать «отключено», как указано в комментариях)

Другие советы

Или, если вы не используете hibernate.properties, добавьте <property name="hibernate.ejb.metamodel.generation" value="disabled" /> к вашей настойчивости .xml.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top