2016-08-01 12 views
0

Ich habe 2 Klasse eins ist Benutzer und man ist Telefon. Ich habe bidirektionale Zuordnung ein Benutzer kann mehrere Telefonnummern haben. AngenommenHibernate eins zu viele bidirektionale Ausgabe

User{ 
private int id; 

private String name; 

@OneToMany(cascade=CascadeType.ALL, mappedBy="user") 
List<Phone> phoneList; 

//get set// 


} 

class Phone{ 

private int id; 
private String number; 
@ManyToOne(cascade=CascadeType.ALL) 
private User user; 


} 

Jetzt Wenn der Benutzer 2 Telefonnummer hat Wenn ich jetzt Benutzer erhalten und die Telefonnummer von Benutzern bekommen. Wenn ich eine Telefonnummer möchte, bekomme ich beide Nummern. Also Gibt es eine Möglichkeit, nur eine Nummer zu bekommen.

+0

Welche Telefonnummer? Wenn Sie einen Benutzer laden, hat dieser Benutzer eindeutig mehrere Telefone ... weil sie mehrere Telefone haben. Sie können eine Abfrage, um ein spezifisches Telefon –

Antwort

0

Die Frage ist, welche Nummer Sie erhalten möchten? Ex. Benutzer aktuell, zuerst benutzt oder bestimmte ...?

Der Benutzer hat einen Verweis auf die Liste der Nummern, und Sie greifen sie per Index (zB PhoneList [0]) und manipulieren sie. Die gängigste Methode ist die Verwendung von LINQ Tools für komplexe Aufgaben oder bestimmte Zahlen.

+0

zu bekommen, was LINQ mit JPA und Hibernate zu tun hat, bin ich nicht ganz sicher ... –

+0

Im Ruhezustand Wenn ich einen Benutzer bekomme und dann, wenn ich versuche, Telefonnummer zu bekommen, erhalten Sie alle die Liste der Telefonnummer, die mit User verbunden ist. Aber ich möchte eine Telefonnummer. SO Gibt es einen Filter oder eine andere Möglichkeit, dies zu tun. @Niel Stockton –

Verwandte Themen