我有以下HQL
查詢:LEFT JOIN與條件獲取失敗
return entityManager().createQuery(
"SELECT page FROM ProjectPage page"
+ " left join fetch page.categorySet as category "
+ " where page.id = :id "
+ " and category.parentCategory is null "
+ " and (category.status != :status_val) "
,ProjectPage.class).setParameter("id", id)
.setParameter("status_val", 1).getSingleResult();
的問題是,在where子句中出現故障的情況下,例如,該查詢返回類別對象,其狀態爲1個類別對象其parentCategory不爲null,儘管我指定了上述限制!
你可以給我們提供一個SQL小提琴的例子嗎? (http://sqlfiddle.com) – Smutje
@Smutje這不是SQL。它是HQL(Hibernate查詢語言)。 –
當離開外部聯接時,不要在WHERE子句的外部表上有條件,而是將它們移動到ON子句。 (如果在WHERE子句中,它不再是一個OUTER JOIN,只是一個常規的JOIN。) – jarlh