Hibernate version:
3.2
Hallo zusammen,
ist es möglich, in einer one-to-many Beziehung, die referenzierte Klasse mehrfach in der referenzierenden zu mappen?
Hier ein Beispiel: Klassisches Parent-Child Beispiel mit Qualifizierung der Kinder. Diese sollen in zwei Collections (im Parent) gepflegt werden, die aber in einer Tabelle persistent gehalten werden.
Hibernate weigert sich, diese Art Mapping anzunehmen. Nur wenn eine der beiden Collections als Read-only markiert ist, könnte es klappen.
Code:
//PSEUDOCODE
Tabellen
PARENT (ID,NAME)
CHILDREN(ID,PARENT_ID,GENDER,NAME)
class Parent {
@Id
int id;
String name;
//einmal CHILD mappen geht
@OneToMany(mappedBy = "parent")
@Where("gender=0") ???
Collection<Child> maleChildren;
//zweites mapping ist so nicht erlaubt - schade, gibt es alternativen?
@OneToMany(mappedBy = "parent")
@Where("gender=1") ???
Collection<Child> femaleChildren
}
class Child{
static MALE_CHILD = 0;
static FEMALE_CHILD = 1;
int gender = 0;
@ID
int id;
@ManyToOne
@JoinColumn(name="parent_id",nullable=false)
Parent parent;
}