나는 2 개체 사이트 및 페이지 있습니다. 사이트에는 많은 페이지가 있습니다. Lazy 유형을 가져 오는 페이지를 얻습니다. 특별한 이유로 나는 페이지의 날짜가> val 인 사이트의 페이지를 얻고 싶다. 어떻게 contion 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;
}
}
지금 SiteDao에 내가 사이트와 페이지
이 잘 회전
@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;
}
}
를 호출 할 mothode을 가지고 있지만 모든 페이지를 반환 s.getPages()
와 나는 어디에 조건을 사용하여 일부 페이지를 싶어. 내가 좋아하는 많은 옵션을 시도 :
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);
임 많은 검색 후, 어떤 사람이 내가이 문제를 해결할 수있는 방법에 대한 아이디어가 않습니다 bloked?를
당신은 일부 비즈니스 방법이 필요
그래서 어떻게됩니까? 예외? 잘못된 결과? –
나는's.getPages()'메서드를 호출 할 때 여전히 모든 페이지를 얻는다. –