I folgende Beziehung OneToMany haben:FetchType.LAZY funktioniert nicht - Hibernate & Kriterien
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "dashboardBox", fetch=FetchType.LAZY)
public List<DashboardCell> getCells() {
return cells;
}
und in anderen Klasse ManyToOne:
@ManyToOne(optional = false, fetch=FetchType.LAZY)
@JoinColumn(name="DASHBOARD_BOX_ID")
public DashboardBox getDashboardBox() {
return dashboardBox;
}
Ich versuche, die Boxen ohne Zellen abfragen (wie Ich habe LAZY in Zellenliste). Ich habe versucht, wie folgt aus:
public List<DashboardBox> findAll(Users user) {
Session session = sessionFactory.getCurrentSession();
Criteria criteria = session.createCriteria(DashboardBox.class)
.add(Restrictions.eq("userId", user.getId()));
return criteria.list();
}
auch wie folgt aus:
public List<DashboardBox> findAll(Users user) {
Session session = sessionFactory.getCurrentSession();
Criteria criteria = session.createCriteria(DashboardBox.class)
.add(Restrictions.eq("userId", user.getId()))
.setFetchMode("cells", FetchMode.SELECT);
return criteria.list();
}
Was will ich erreichen ist nicht tun Liste von Zellen, wenn ich DashboardBox'es abfragen.
Wer hat eine Idee und kann erklären, wie LAZY beim Laden von Kriterien zu erreichen ist? Ich weiß, wenn ich HQL verwenden würde, würde ich es haben, aber ich bin daran interessiert, Criteria zu verwenden.
Danke
was nicht funktioniert? Was sind Ihre erwarteten Ergebnisse und Ihre tatsächlichen Ergebnisse? –
Ich habe die Frage aktualisiert. Was ich erreichen möchte ist, keine Liste von Zellen zu haben, wenn ich DashboardBoxes abfrage. Ich habe versucht mit namedQuery, aber es funktioniert immer noch nicht, also nehme ich an, dass es ein Problem mit Anmerkungen im Modell gibt. – Gazeciarz