Спящая связь между 2 единицами персистентности? - PullRequest
1 голос
/ 04 февраля 2011

мой вопрос немного сложен, поэтому я постараюсь сделать его максимально простым:

У меня есть два maven проекта: ProjetA и ProjectB.

ProjectA имеет следующее persistence.xml file:

<persistence-unit name="ProjectAUnit" transaction-type="RESOURCE_LOCAL">
        <class>com.projectA.Client</class>
        <class>com.projectA.InterventionA</class>
    </persistence-unit>

InterventionA имеет отношение OneToOne с сущностью Client.

ProjectB имеет следующий persistence.xml файл:

<persistence-unit name="projectBUnit" transaction-type="RESOURCE_LOCAL">
        <class>com.projectB.InterventionB</class>
        <class>com.projectB.InterventionOrder</class>
</persistence-unit>

InterventionB расширяет класс InterventionA (содержится в зависимости .jar):

Все 3 класса InterventionA, InterventionB и Client определены вта же схема MySQL (schema1).

НО InterventionB также имеет отношение @OneToOne с сущностью InterventionOrder , определенной в другой схеме MySQL (schema2).частное вмешательство

Я получаю следующее исключение:

org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.projectA.InterventionA.client references an unknown entity: com.projectA.Client

Итак, вот мой вопрос: почему я пытаюсь достичь даже возможного с помощью Hibernate / Spring?если да как?:-) заранее спасибо за помощь.

1 Ответ

1 голос
/ 04 февраля 2011

InterventionB унаследовал взаимно-однозначные отношения между собой и Клиентом (от InterventionA). Чтобы иметь возможность определить отношения, целевой объект должен быть отображен, в Project B Client не отображается, следовательно, ошибка. Поскольку проект B зависит от проекта A, вы можете просто добавить целевой объект в файл persistence.xml проекта B:

<persistence-unit name="projectBUnit" transaction-type="RESOURCE_LOCAL">
    <class>com.projectB.InterventionB</class>
    <class>com.projectB.InterventionOrder</class>

    <class>com.projectA.Client</class>
</persistence-unit>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...