我们有以下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;的问候,
米甲