嵌入式实体的唯一约束?

时间:2016-09-14 14:13:37

标签: java persistence unique-constraint

是否可以对javax.persistence库中的嵌入式实体设置唯一约束而不单独提及所有列?

我有什么:

@Table(uniqueConstraints = { @UniqueConstraint(columnNames = { "someReference", "id1", "id2" }) })
public class A {
    @Embedded
    private B embedded;
    private String someReference;
}

@Embeddable
public class B {
    private long id1;
    private long id2;
}

我想要的(或多或少):

@Table(uniqueConstraints = { @UniqueConstraint(columnNames = {"someReference", "embedded" }) })

1 个答案:

答案 0 :(得分:0)

即可。当我们将任何实体设为嵌入式时,通常会理解,一旦插入了关系数据库,就永远不会再将相同的嵌入对象保存在关系数据库中。但是可能会出现一些用例,其中我们可能只希望嵌入对象属性的某些组合对于关系数据库是唯一的。

对于文档数据存储,可以在模式中的不同文档中存在相同的嵌入对象。