父表的Orm discriminator-column必须引用不同表的值

时间:2013-09-17 11:43:39

标签: jpa orm

这个问题很混乱,所以我将详细描述如下。

我有一个域对象User(在数据库中有各自的User表)。我有另一个域名投资者(在数据库中有各自的投资者表格),扩展了用户。如果用户的userType ='I'

,用户现在可以成为投资者
<entity class="User" >
   <table name="domain.Users" />
   <discriminator-column name="user_type" discriminator-type="STRING"/>
</entity>

我需要将user_type映射到其各自的域和表。

<entity class="domain.Investor" >
  <table name="domain.Users" />
  <discriminator-value>I</discriminator-value>
</entity>

在上面的代码中,我无法将表名更改为数据库的Investor表,因为鉴别器值是针对User的表。我想要xml代码,其中discriminator的Users表列是我,但它应该有自己的表Investor。

1 个答案:

答案 0 :(得分:0)

如果您需要,投资者应该能够在联合表继承结构中使用用户和自己的投资者表。这将使得User中的每一行代表一个User实体或User子类,而每个真正是Investor的User也会在Investor表中有一行。有关如何设置继承的简单示例,请参阅http://wiki.eclipse.org/EclipseLink/Examples/JPA/Inheritance - 您缺少用户中指定要使用的JPA继承类型的<inheritance strategy="JOINED"/>标记。