@Embeddable中的JPA @Convert会触发不必要的删除插入

时间:2018-01-11 08:20:02

标签: hibernate jpa jpa-2.0

我们有以下JPA实体:

@Entity
@Table(name = "T_PRIZE")
public final class Prize
{   
    @Id
    @Column(updatable = false)
    private long id;

    @Embedded
    private Target target;
}

@Embeddable
public final class Target
{   
    @ElementCollection
    @CollectionTable(name = "T_CUTOFF", joinColumns = @JoinColumn(name = "PRIZE_ID"))
    private List<CutOff> cutOffs = new LinkedList<CutOff>();

}

@Embeddable
public final class CutOff implements Serializable
{
    @Convert(converter = PenaltiesConverter.class)
    private List<IPenalty> penalties;
}

通过上述配置,我们在T_CUTOFF表上找到了很多删除插入内容,即使我们没有触及奖品实体。即使是简单的本地人,也可以从DUAL&#39;中选择SEQ.nextval。将触发delete-insert。

这种行为导致我们的应用程序出现间歇性错误,其中CutOff实体的更新似乎没有在DB中持久化,但事实证明另一个线程之后在同一个表上执行delete-insert。

如果删除@Convert字段,则不再发生不必要的删除插入。

我们已经了解JPA自动刷新功能,但这是@Empeddable中@Convert的预期行为吗?

非常感谢任何帮助。

谢谢&amp;的问候,

米甲

0 个答案:

没有答案