我想在我的OrderColumn上的表中添加NOT NULL约束。使用约束运行我的代码时,出现约束违规错误。在没有约束的情况下运行,我看到该行首先插入而没有OrderColumn,然后在使用正确的OrderColumn之后立即进行更新。有这种现象的原因吗?
我管理OrderColumn的实体:
@Entity
@Table(name="INSPECTION")
public class Inspection implements Serializable
{
...
@OneToMany(cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}, orphanRemoval=true)
@OrderColumn(name="LIST_INDEX", nullable=false)
@JoinColumn(name="INSPECTION_ID")
private List<RecommendationInstance> recommendations;
...
}
这个问题源于Why is JPA ignoring my @OrderColumn in a basic use case?,我对为什么没有插入OrderColumn感到困惑。可以在此处看到其他代码示例。
最佳答案
这里的问题在于,RecommendationInstance实体是一个独立的实体,没有针对订单列的映射。 Eclipselink旨在仅从实体本身创建插入。有一个功能要求具有eclipselink存储语句,并在处理其他映射时将其添加到它们中,但是我仍然不方便。