我正在尝试映射一个包含两个持久对象的类(与数据库无关的对象),有没有办法做到这一点?如果有一个关键字/属性要使用,请提及它,我可以从那里开始。如果没有直接的方法,请您在高层次上简要解释替代步骤吗?
课程
class NotPersistent {
Private Persistent1 persistent1;
Private Persistent2 persistent2;
...
}
class Persistent1 {
Private Integer id;
Private String column1;
...
}
class Persistent2 {
Private Integer id;
Private String column1;
...
}
到目前为止我已完成的Hibernate映射
<class name="NotPersistent">
<one-to-one class="Persistent1"></one-to-one>
<one-to-one class="Persistent2"></one-to-one>
...
</class>
<class name="Persistent1">
<one-to-one class="NotPersistent"></one-to-one>
<id ...>
<property ...>
...
</class>
<class name="Persistent2">
<one-to-one class="NotPersistent"></one-to-one>
<id ...>
<property ...>
...
</class>
如果我在正确的轨道上,<class name="NotPersistent" ..
答案 0 :(得分:0)
好的,到目前为止,没有任何其他方法看起来正确。您使用one-to-one
标记进行映射。
<class name="NotPersistent" table="xxx">
<one-to-one name="persistent1" class="Persistent1" cascade="save-update"></one-to-one>
<class name="NotPersistent" table="xxx">
<one-to-one name="nonPersistent" class="NonPersistent"></one-to-one>
由于我没有使用XML映射,因此我不知道确切的语法。但这种方法应该让你开始。另一个问题是实体是真的一对一吗?它看起来不太可能,因为这两个持久性实体之间的关系非常密切,它们可以直接使用Foreignkey和一个实体进行耦合。