Ich habe folgende Struktur: Bank hat Namen und Liste der Büros. Büro hat city Eigentum.Ruhezustand wählen Eltern mit Liste der Kinder entspricht Kind Parameter
Wie kann ich wählen Banks mit ihren eigenen Listen Büros nur mit bestimmten Stadt mit HQL?
Code:
Bank
@Entity
@Table(name = "BANKS")
public class Bank {
public Bank() {
}
public Bank(String name) {
this.name = name;
}
@Id
@Column(name = "ID")
@GeneratedValue
private int id;
@Column(name = "name")
private String name;
/*@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)*/
@OneToMany(mappedBy = "bank", cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
/*@JoinColumn(name = "BANK_ID")*/
private List<Office> officeList;
Büro
@Entity
@Table(name = "OFFICES")
public class Office {
public Office() {
}
public Office(String city, String address, String workingHours, Bank bank) {
this.city = city;
this.address = address;
this.workingHours = workingHours;
this.bank = bank;
}
@Id
@Column(name = "ID")
@GeneratedValue
private int id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "BANK_ID")
@JsonBackReference
private Bank bank;
public void setBank(Bank bank) {
this.bank = bank;
}
public Bank getBank() {
return bank;
}
@Column(name = "CITY")
private String city;
@Column(name = "ADDRESS")
private String address;
@Column(name = "WORKING_HOURS")
private String workingHours;
Ich habe Wunsch geschrieben, aber es funktioniert falsch:
sessionFactory.getCurrentSession().createQuery("select b from Bank b join b.officeList o" +
" where o.city = ?").setString(0, city).list();
Jede Hilfe wird sehr geschätzt.
Sie müssen Ihren SQL-Code hinzufügen und zeigen uns Ihre Bemühungen bis jetzt –
Diese Abfrage sieht aus wie es funktionieren sollte. Gibt es eine leere Liste zurück oder gibt es eine Ausnahme? – Pace
@Pace, gibt es jede Liste von Banken zurück, deren Liste von Büros mindestens ein Büro mit erforderlicher Stadt enthält, und wenn die Büroliste der Bank zwei oder mehr übereinstimmende Elemente enthält, wird diese Bank gleich oft zurückgegeben. Aber ich brauche Ergebnis, um BankList mit OfficeLists zu enthalten, die nur übereinstimmende Eigenschaft enthalten. – SHaaD