Ich habe 2 Objekte Seite und Seite. Eine Site hat viele Seiten. Ich bekomme Seiten mit Lazy Typ holen. Aus einem bestimmten Grund möchte ich Seiten einer Website, wo das Datum der Seiten> val.Wie bekomme ich Entity-Objekt mit der Conversion JPA
@Entity
@Table(name = "site")
Public class Site {
String site_id;
Set<Page> pages;
@OneToMany(mappedBy = "site", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
public Set<Page> getPages() {
return pages;
}
}
@Entity
@Table(name = "page")
Public class Page{
String page_id;
Site site;
@ManyToOne(fetch=FetchType.LAZY, cascade = CascadeType.MERGE)
@JoinColumn(name = "site_id")
public Site getSite() {
return site;
}
}
Jetzt in SiteDao habe ich die mothode eine Website aufrufen und ihre Seiten
@Stateless
public class SiteDao {
@PersistenceContext(unitName = "name")
private EntityManager em;
public Site getSiteAndPages(String site_id) {
Query q = em.createQuery("select s From Site s where s.site_id = :site_id");
q.setParameter("site_id", site_id);
Site s = (Site) q.getSingleResult();
s.getPages();
return s;
}
}
Dieses gut dreht, aber s.getPages()
alle Seiten zurückkehren, und ich möchte nur einige Seiten, wo die Bedingungen mit bekommen. Ich habe viele Optionen wie:
Query q = em.createQuery(
"select s, p From Site s"
+ " join s.pages p "
+ " where s.site_id = :site_id "
+ " and p.site = s"
+ " and p.lastupdate > :val"
);
q.setParameter("site_id", site_id);
q.setParameter("val", lastUpdate);
Im bloked nach vielen Recherchen, hat jede Person eine Vorstellung davon haben, wie kann ich dieses Problem beheben?
BR
Was passiert also? Eine Ausnahme? Falsche Ergebnisse? –
Ich arbeite nicht, es immer noch alle Seiten, wenn ich 's.getPages()' Methode aufrufen. –