这个问题很混乱,所以我将详细描述如下。
我有一个域对象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。
答案 0 :(得分:0)
如果您需要,投资者应该能够在联合表继承结构中使用用户和自己的投资者表。这将使得User中的每一行代表一个User实体或User子类,而每个真正是Investor的User也会在Investor表中有一行。有关如何设置继承的简单示例,请参阅http://wiki.eclipse.org/EclipseLink/Examples/JPA/Inheritance - 您缺少用户中指定要使用的JPA继承类型的<inheritance strategy="JOINED"/>
标记。