在hibernate JOINED继承中更改子类实现

时间:2016-04-09 03:39:49

标签: java hibernate jpa inheritance

我有两个扩展我的超类的类:

超类:

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "TRADE_ID", discriminatorType = DiscriminatorType.INTEGER)
public abstract class AbstractTrade extends RhEntity {
.
.
.
第一个孩子:

@Entity
@Table(name = "INCOMPLETE_TRADE")
@DiscriminatorValue("1")
public class IncompleteTrade extends AbstractTrade {
String customerName;
第二个孩子:

@Entity
@Table(name = "COMPLETE_TRADE")
@DiscriminatorValue("2")
public class CompleteTrade extends AbstractTrade {
Customer customer;

在更改不完整交易以完成交易时是否有任何解决方案,只更新附加数据(删除incomplete表中的记录并添加complete表,并更新鉴别器列)而不更改主数据键

1 个答案:

答案 0 :(得分:0)

如果使用JOINED,那么鉴别器可以说很少用(它有一行的表定义了"类型",鉴别器只是一种快捷方式查找的方法)。

其次,你无法改变身份"对象的对象(对象的类是该标识的一部分)。

唯一的方法是使用这个新类(和新标识)创建一个新对象并删除旧标识