May 12th, 2009
Hibernate: Bidrektinales Mapping mit IndexColumn
Wenn eine OneToMany Property bidirektional über das mappedBy-Attribut gemappt ist, weiger Hibernate sich, sich um die IndexColumn zu kümmern. Beispiel:
public class Parent {
@OneToMany(mappedBy="parent")
@IndexColumn(name = "idx")
private List children = new ArrayList();
// ...
}
public class Child {
@ManyToOne
private Parent parent;
// ...
}
… funktioniert leider nicht. Die IndexColumn wird von Hibernate nicht mehr verwaltet, da der Owner hier die Klasse Child ist.
Der Trick ist, das Ownership umzukehren:
public class Parent {
@OneToMany
@JoinColumn(name = "parent_id")
@IndexColumn(name = "idx")
private List children = new ArrayList();
// ...
}
public class Child{
@ManyToOne
@JoinColumn(name = "parent_id", updatable = false, insertable = false)
private Parent parent;
// ...
}
Nun gehts!
Danke an: http://josian.wordpress.com



No Responses to “Hibernate: Bidrektinales Mapping mit IndexColumn”
No comments yet
Leave a Reply