我无法理解以下JPQL
查询有什么问题:
StringBuilder sb = new StringBuilder("FROM FaPrimaryDocument AS t WHERE (t.debitAccount.id = :id or t.creditAccount.id = :id) " +
"AND t.debitAccount IS NOT NULL AND t.creditAccount IS NOT NULL ");
Query q = em.createQuery(sb.toString(), FaPrimaryDocument.class)
.setParameter("id", id);
List<FaPrimaryDocument> transactions = q.getResultList();
上面的查询返回带有
debitAccount/creditAccount = null
的行。如何更改它,以便不返回带有debitAccount/creditAccount = null
的行 最佳答案
我尝试了一些不同的方法。以及它是如何工作的:
"SELECT t " +
"FROM FaPrimaryDocument AS t " +
"JOIN t.debitAccount AS da " +
"JOIN t.creditAccount AS ca " +
"WHERE " +
"((da.id = :id) OR (ca.id = :id)) " ;