0
내 데이터베이스에는 발행물이 있으며 각 발행물에는 0 개 이상의 페이지가있을 수 있으며 다른 테이블에 저장되어 있습니다. 그들을 선택할 때, 나는 적어도 하나의 페이지가있는 출판물이나 모든 출판물을 원합니다. 다음 기준 쿼리는이 오류로 인해 작동하지 않습니다 : org.hibernate.QueryException: could not resolve property: p
비교 결과 계산
Criteria c = Utils.getSession().createCriteria(Publication.class);
if(!showEmptyPublications)
{
ProjectionList pl = Projections.projectionList();
pl.add(Projections.count("pages").as("p"));
c.setProjection(pl);
c.add(Restrictions.gt("p", 0));
}
c.addOrder(Order.asc("titel"));
publications = c.list();
출판 :
CREATE TABLE IF NOT EXISTS `Publication` (
`id` int(11) NOT NULL AUTO_INCREMENT,
...
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=47 ;
페이지 :
CREATE TABLE IF NOT EXISTS `Page` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pub_id` int(11) NOT NULL,
...
PRIMARY KEY (`id`),
KEY `FOREIGN_KEY_DICT` (`pub_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6314 ;
ALTER TABLE `Page`
ADD CONSTRAINT `FOREIGN_KEY_PUBLICATION` FOREIGN KEY (`pub_id`)
REFERENCES `Publication` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
Publication.java :
...
@OneToMany(fetch = FetchType.LAZY, mappedBy = "publication")
public Set<Page> getPages()
{
return this.pages;
}
public void setPages(Set<Page> pages)
{
this.pages = pages;
}
테이블 정의 (또는 최대 절전 모드 매핑)를 추가 할 수 있습니까? "[페이지가 다른 테이블에 저장되었습니다]는 단순한 테이블 쿼리가 아님을 나타냅니다. – Deltharis
완료, 편집을 참조하십시오. – user1406177