@ManyToOne в нескольких банках со Glassfish / EclipseLink - PullRequest
1 голос
/ 22 июня 2011

У меня есть два jar, dog.jar и person.jar, оба упакованы как модули ejb в одном ухе.Dog.java - это сущность, которая ссылается на другую сущность Person.java через сопоставление OneToMany с полем «владелец».Каждый jar имеет свой собственный файл persistence.xml, который ссылается на общую единицу сохраняемости, но каждый файл persistence.xml содержит только классы, содержащиеся в этом банке.

При запуске Glassfish жалуется:

Exception Description: [class com.example.dog.entities.Dog] uses a non-entity [class com.example.person.entities.Person] as target entity in the relationship attribute [field owner].

Кажется, это работает, если я добавлю класс Person в файл persistence.xml, но мне это совсем не нравится.Класс Person уже определен в файле persistence.xml person.jar, который находится в одноименном модуле постоянства, в том же ухе, поэтому он должен найти его во время выполнения!Я не хочу повторяться.

Кроме того, я использую удобный инструмент Eclipse JPA для автоматической синхронизации имен классов в persistence.xml, и когда я делаю это, он находит Dog.java только тогда, когдаЯ запускаю его на постоянстве собаки. Xml.Поэтому я не хочу выискивать все ссылки и вручную добавлять их в файл persistence.xml и беспокоиться о том, что они могут сорваться при повторной синхронизации.

Кроме того, я убедился, что поставил модуль person ejb передмодуль dog ejb в application.xml.

Это мой первый набег на JPA и Java EE, так что я могу что-то не так сделать ... Я выпил koolaid, читая книги и статьи, но, кажется, никто никогдапоказать хороший пример корпоративного мультимодульного модуля ...

...