Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate:可嵌入文件列表的唯一约束(@ElementCollection)_Java_Hibernate_Jpa - Fatal编程技术网

Java Hibernate:可嵌入文件列表的唯一约束(@ElementCollection)

Java 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) {

给定一个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) {
        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;
}