Hallo,
ich bin Anfänger im Umgang mit Hibernate und versuche nun auf basis des AppFuse projects eine kleine Beispielanwendung zu entwickeln. Hierzu verwende ich die JPA Annotations.
Ich hoffe, das ich hier im Forum richtig bin und mir einer von euch helfen kann.
ich möchte die Freundschaftsbeziehung von Usern modelieren.
Hierzu hab ich eine Tabelle user mit id und name und eine Tabelle friend mit id1 und id2, durch welche die Freundschaftsbeziehung dargestellt wird.
Wie bekomme ich es nun hin, dass im user Model, alle Freunde des Users angegeben werden.
Problem hierbei ist, das die Freunde in der friend Tabelle sowol als id1 als auch id2 abgelegt werden können, je nachdem, wer die Freundschaftsbeziehung anlegt.
Mein bisheriger Code funktioniert leider nur für die eine seite. UserA hat UserB als Freund aber umgekeht leider nicht.
Auch weis ich nicht, wie ich das Friend Model ändern muss, damit ich User-Objecte der Freunde bekomme und nicht nur deren ID?
Ich hoffe jemand kennt sich mit der Thematik aus und kann mir weiter helfen.
Gruß
André
Mein bisheriger code:
User
Code:
@Entity
@Table(name = "app_user")
public class User extends BaseObject implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false, length = 50, unique = true)
private String username;
@OneToMany(fetch = fetchType.EAGER,cascade=CascadeType.ALL,mappedBy="id1")
private Set<Friend> friends = new HashSet<Friend>();
...
}
Friend
Code:
@IdClass(FriendPK.class)
@Entity
@Table(name = "friend")
public class Friend extends BaseObject implements Serializable {
@Id
private long id1;
@Id
private long id2;
...
}
FriendPK
Code:
public class FriendPK implements Serializable
{
private long id1;
private long id2;
}