嵌入式实体的唯一约束?
Unique constraint on embedded entity?
是否可以在不单独提及所有列的情况下对 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" }) })
否。当我们将任何实体作为 Embedded 时,通常理解的是,一旦插入,就不会再将同一个 Embedded 对象保存在关系数据库中。但是可能会出现用例,其中我们可能只希望嵌入式对象属性的某些组合对于关系数据库是唯一的。
对于文档数据存储,相同的嵌入对象可以出现在架构中的不同文档中。
是否可以在不单独提及所有列的情况下对 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" }) })
否。当我们将任何实体作为 Embedded 时,通常理解的是,一旦插入,就不会再将同一个 Embedded 对象保存在关系数据库中。但是可能会出现用例,其中我们可能只希望嵌入式对象属性的某些组合对于关系数据库是唯一的。
对于文档数据存储,相同的嵌入对象可以出现在架构中的不同文档中。