Исходный вопрос проистекает из этого вопроса:
Почему это отображение JPA 2.0 дает мне ошибку в Eclipse / JBoss Tools?
Как вы можете видеть этоСозвездие также сводит с ума валидатор Eclipse Dali JPA.Спецификация JPA, по-видимому, допускает это, как показано здесь (несколько надежно):
Разрешает ли спецификация JPA ссылки на столбцы без первичного ключа?
Точный отправленный кодв первом вопросе также возникает Hibernate MappingException:
Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: geoareas] Unable to configure EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:374)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
at tld.geoareas.Main.main(Main.java:69)
Caused by: org.hibernate.MappingException: property [_tld_geoareas_model_Zip__identifierMapper.country] not found on entity [tld.geoareas.model.Country]
at org.hibernate.mapping.PersistentClass.getRecursiveProperty(PersistentClass.java:378)
at org.hibernate.cfg.annotations.TableBinder.bindFk(TableBinder.java:414)
at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:115)
at org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1550)
at org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1473)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1389)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1345)
at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1477)
at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:193)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1096)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:278)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:362)
... 4 more
Caused by: org.hibernate.MappingException: property [_tld_geoareas_model_Zip__identifierMapper.country] not found on entity [tld.geoareas.model.Country]
at org.hibernate.mapping.PersistentClass.getRecursiveProperty(PersistentClass.java:424)
at org.hibernate.mapping.PersistentClass.getRecursiveProperty(PersistentClass.java:375)
... 15 more
Меня особенно раздражает "рекурсивное свойство".В конце концов, это просто простая ссылка на один столбец в столбце UNIQUE, NOT NULL CHAR (2) в подстоле GeoAreas. Страны.Обратите внимание, что наследование может оказать здесь некоторое влияние, но оно все еще не слишком сложное, ИМХО.
Итак, это ошибка Hibernate?