Ich versuche, eine JPQL für eins zu viele Beziehung zu erstellen, nämlich Benutzer und Gerät als 1 Benutzer kann eins zu viele Geräte haben. Ich möchte das gesamte Objekt des Geräts finden, wenn es dem Benutzer gehört und der Gerätename korrekt ist.JPQL für One to Many Beziehung
Wenn es sich um eine SQL-Abfrage ist, dann kann ich die Abfrage nur tun, nur für das Gerät wie folgt:
select * from DEVICE where USER_ID = 2 and DEVICENAME = "mypc";
wo BENUTZER_ID der Fremdschlüssel in DEVICE-Tabelle. Aber wie kann ich die JPQL-Abfrage für die Benutzer- und Gerätetabelle durchführen? Hier sind einige Informationen für Benutzer- und Geräteklasse
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
public int id;
public String username;
public String firstname;
public String lastname;
public String hashPassword;
@OneToMany(mappedBy = "user")
public List<Device> devices = new ArrayList<Device>();
}
@Entity
public class Device {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
public int id;
public String deviceName;
@ManyToOne
public User user;
String deviceOS;
String deviceType;
String attributes;
boolean standard;
}
Und was haben Sie versucht? Hast du Dokumentation über JPQL gelesen? http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#hql-implicit-join –