2010-06-18 58 views
2

我已經在Hibernate中定義的集合是這樣的:暗金物品

... 
public class Item { 
    ... 
    @ElementCollection 
    List<Object> relatedObjects; 
} 

,它創建colums ITEM_ID和OBJECT_ID的映射表。

問題是,object_id似乎是唯一的。換句話說,我不能將兩個不同的項目與同一個對象關聯起來。但那是我想要的。

我想item_id和object_id的組合是唯一的。我怎麼做?

回答

0

這不是我所經歷的。對於以下實體:

@Entity 
public class Person implements Serializable { 
    @Id 
    @GeneratedValue 
    private Integer id; 
    private String firstName; 
    private String lastName; 
    @Enumerated(EnumType.STRING) 
    private Gender gender; 

    @ElementCollection 
    private Set<String> nicknames = new HashSet<String>(); 

    private String dept; 

    // getters, setters 
} 

下表獲得創建:

 
create table Person (id integer generated by default as identity, dept varchar(255), firstName varchar(255), gender varchar(255), lastName varchar(255), primary key (id)) 
create table Person_nicknames (Person_id integer not null, nicknames varchar(255)) 
alter table Person_nicknames add constraint FK24F0D97B19ACB65E foreign key (Person_id) references Person 

沒有唯一約束。但是如果沒有看到你的「對象」類,我就不能多說了(這是一個可嵌入的類,對吧?)。

PS:ElementCollection不能是ManyToMany,這更多是OneToMany