我有两个扩展我的超类的类:
超类:
@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
表,并更新鉴别器列)而不更改主数据键
答案 0 :(得分:0)
如果使用JOINED,那么鉴别器可以说很少用(它有一行的表定义了"类型",鉴别器只是一种快捷方式查找的方法)。
其次,你无法改变身份"对象的对象(对象的类是该标识的一部分)。
唯一的方法是使用这个新类(和新标识)创建一个新对象并删除旧标识