Hallo,
ich möchte mit Hibernate es realisieren, dass ein User einen (Freund),
also einen anderen User hinzufügen kann. (Wie bei sozialen Netzwerken)
Das ganze ist eine Many - to - Many Beziehung.
Mittels Hibernate kann man eine Many-to-many Beziehung auch einfach realieren, sodass Hibernate
eine Zwischentabelle anlegt.
Nun aber zu meinen Problemen:
1. Brauche ich überhaupt eine Entitätsklasse "Friend" ?
2. Wenn ja, welche Attribute muss diese haben?
3. Wie sieht das in der Datenbank aus (mysql)?
Mein Vorschlag:
Tabelle "user", kein Fremdschlüssel
Tabelle "friend_user" wird selbst von Hibernate erstellt.
Tabelle "friend" mit den Attributen:
friend_id, accept, user_fk
Accept: Ob der Freund vom User als Freund akzptiert wurde. Ist ein boolean
4. Hier mein Vorschlag für die Entitätsklasse "User":
ich möchte mit Hibernate es realisieren, dass ein User einen (Freund),
also einen anderen User hinzufügen kann. (Wie bei sozialen Netzwerken)
Das ganze ist eine Many - to - Many Beziehung.
Mittels Hibernate kann man eine Many-to-many Beziehung auch einfach realieren, sodass Hibernate
eine Zwischentabelle anlegt.
Nun aber zu meinen Problemen:
1. Brauche ich überhaupt eine Entitätsklasse "Friend" ?
2. Wenn ja, welche Attribute muss diese haben?
3. Wie sieht das in der Datenbank aus (mysql)?
Mein Vorschlag:
Tabelle "user", kein Fremdschlüssel
Tabelle "friend_user" wird selbst von Hibernate erstellt.
Tabelle "friend" mit den Attributen:
friend_id, accept, user_fk
Accept: Ob der Freund vom User als Freund akzptiert wurde. Ist ein boolean
4. Hier mein Vorschlag für die Entitätsklasse "User":
Code:
@Entity
@Table(name="users")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="userid")
protected Long id = null;
// Andere Attribute wie Name usw.
@ManyToMany
@JoinTable(name = "user_friends",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "friend_id"))
protected List<User>friends = null;
}