开发者

Unique items in Hibernate collections

I have defined a collection in Hibernate like this:

...
public class Item {
    ...
    @ElementCollec开发者_如何学运维tion
    List<Object> relatedObjects;
}

It creates a mapping table with colums item_id and object_id.

The problem is that object_id seems to be unique. In other words I can not have two different items being related to the same object. But that is what I want.

I would like the combination of item_id and object_id to be unique. How do I do that?


That's not what I'm experiencing. For the following entity:

@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
}

The following tables get created:

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

There is no unique constraint. But I can't say more without seeing your "Object" class (it's an embeddable class, right?).

PS: ElementCollection can't be a ManyToMany, this is more a OneToMany.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜