Hibernate 4 @OneToMany List

对于@OneToMany关系,我是否必须映射到对象?

我有以下例子

@Entity @Table(name="FOO_TABLE") public class Foo { @Id @Column(name="ID") @GeneratedValue private int id; ????? private List bars; } 

如果酒吧是我会做的对象

 @ManyToOne @JoinColumn(name="ID_FOO") 

问题就解决了。 但是,我想避免创建一个只表示一对字符串的对象(引用键,值)。

FOO和BAR存储在单独的表中

 CREATE TABLE Foo ( ID INTEGER NOT NULL AUTO_INCREMENT, //SOME OTHER PROPERTIES PRIMARY KEY( ID), ); CREATE TABLE Bar ( ID_FOO INTEGER, VAL VARCHAR(256), PRIMARY KEY (ID_FOO, VAL), FOREIGN KEY ( ID_FOO) REFERENCES Foo( ID) ON DELETE CASCADE ); 

@ElementCollection就是你要找的。 这允许您为非实体类定义映射,例如Embeddable或Basic。

http://en.wikibooks.org/wiki/Java_Persistence/ElementCollection

您还可以使用@CollectionTable来定义表。

 @ElementCollection @CollectionTable(name = "data" ....) private List data;