Inheritance JPA在合并时触发更新,但应触发插入

Inheritance JPA在合并时触发更新,但应触发插入,inheritance,jpa,Inheritance,Jpa,如上所述,我在加载继承类型为joined的对象时遇到问题。 在JPA提供程序上使用这种映射的外部连接标志修复了该问题 现在,问题不在于加载操作,而在于更新操作。 假设我有相同的域模型: @Table(name = "S_MC_CC_RAPPORTI") @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorColumn(name = "COD_TIPORAPPORTO") public class RapportoImpl i

如上所述,我在加载继承类型为joined的对象时遇到问题。 在JPA提供程序上使用这种映射的外部连接标志修复了该问题

现在,问题不在于加载操作,而在于更新操作。 假设我有相同的域模型:

@Table(name = "S_MC_CC_RAPPORTI")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "COD_TIPORAPPORTO")
public class RapportoImpl implements Rapporto, Cloneable {

    @Id
    @Column(name = "COD_RAPPORTO")
    protected Long codiceRapporto;
和子类:

@Entity
@Table(name = "CARTE")
@DiscriminatorValue("4 ")
public class CartaImpl extends RapportoImpl implements Carta, Cloneable {
   private String description;
ER是:

表1:

Id   COD_TIPORAPPORTO
1       4
表Carta:

Id   Description
1     Carta
假设子表上的记录被删除;现在,当我加载Carta时,我有一个属性description=null的对象。我给它赋值:description=carta,但是当我合并对象时,JPA创建了一个Update语句,认为子表上的记录存在。我不得不放弃这些用例中的插入。我试图将其添加到父表和子表中,但没有成功。 你知道在这种情况下如何触发插入式稳定器吗

问候
Massimo

您正在与JPA抗争,因为您的数据已损坏。我会通过从继承转换到可为空的关联来修复数据,或者使用能够处理这些损坏的映射。我现在无法考虑更改映射,因为我有一个基于此构建的应用程序。亲切的问候。马西莫