Hibernate 4 @OneToMany List

Pour une relation @OneToMany, dois-je mapper sur des objects?

J’ai l’exemple suivant

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

Si les barres étaient un object que je ferais

 @ManyToOne @JoinColumn(name="ID_FOO") 

et le problème serait résolu. Cependant, je veux éviter de créer un object pour ne représenter qu’une paire de chaînes (clé de référence, valeur).

FOO et BAR sont stockés dans des tables séparées

 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 est ce que vous recherchez. Cela vous permet de définir un mappage pour une classe non-Entity, par exemple Embeddable ou Basic.

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

Vous pouvez également utiliser @CollectionTable pour définir la table.

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