开发者

Hibernate link between 2 persistence units?

my question is a bit tricky so I will try to make it as simple as possible:

I have two maven projects: ProjetA and ProjectB.

ProjectA has the following persistence.xml file:

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

InterventionA has a OneToOne relationship with the Client entity.

ProjectB has the follo开发者_开发问答wing persistence.xml file:

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

InterventionB extends the InterventionA class (contained in a .jar dependency):

All 3 classes InterventionA, InterventionB and Client are defined in the same MySQL schema (schema1).

BUT InterventionB also has a @OneToOne relationship with the InterventionOrder entity defined in another MySQL schema (schema2). private InterventionOrder interventionOrder;

I am getting the following exception:

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

So here is my question: Is why I am trying to achieve even possible with Hibernate/Spring? if yes how? :-) thanks in advance for your help.


InterventionB has inherited the one-to-one relationship between itself and Client (from InterventionA). To be able to define a relationship the target entity must be mapped, in Project B Client is not mapped, hence the error. As Project B depends on Project A you can simply add the target entity to Project B's persistence.xml:

<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>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜