Java Hibernate:可嵌入文件列表的唯一约束(@ElementCollection)
给定一个EnitiyJava Hibernate:可嵌入文件列表的唯一约束(@ElementCollection),java,hibernate,jpa,Java,Hibernate,Jpa,给定一个Enitiy产品 @Entity public class Product { private Long id; private List<Review> reviews; public Product() {} @Id @GeneratedValue public Long getId() { return this.id; } public void setId(Long id) {
产品
@Entity
public class Product {
private Long id;
private List<Review> reviews;
public Product() {}
@Id
@GeneratedValue
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
@ElementCollection
public List<Review> getReviews() {
return reviews;
}
public void setReviews(List<Review> reviews) {
this.reviews = reviews;
}
// equals() and hashCode() omitted for brevity
}
如何为审阅
的作者设置唯一约束。换句话说:我想确保,对于给定的产品,每个评论都有不同的作者
我可以使用@NaturalId
?我是否使用@列(unique=true)
?我已经找到了,但在我的例子中,它是一个可嵌入的列表,而不仅仅是一个成员,所以我想这种方法是行不通的
提前多谢 如果您正在谈论在架构生成过程中添加唯一的数据库索引,那么您可以按以下方式执行此操作:
@ElementCollection
@CollectionTable(name = "product_reviews",
uniqueConstraints = {@UniqueConstraint(columnNames={"product_id", "author_id"})})
public List<Review> getReviews() {
return reviews;
}
@ElementCollection
@CollectionTable(name=“product\u reviews”,
uniqueConstraints={@UniqueConstraint(columnNames={“产品id”,“作者id”})
公共列表getReviews(){
回报审查;
}
@ElementCollection
@CollectionTable(name = "product_reviews",
uniqueConstraints = {@UniqueConstraint(columnNames={"product_id", "author_id"})})
public List<Review> getReviews() {
return reviews;
}