对于@OneToMany关系,我必须映射到Objects吗?
我有下面的例子
@Entity @Table(name="FOO_TABLE") public class Foo { @Id @Column(name="ID") @GeneratedValue private int id; ????? private List<String> 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)定义映射。
@ElementCollection
http://en.wikibooks.org/wiki/Java_Persistence/ElementCollection
您也可以使用@CollectionTable定义表。
@ElementCollection @CollectionTable(name = "data" ....) private List<String> data;