我有以下SQL返回13个结果
SELECT *
FROM AAA a
JOIN BBB b ON b.id = a.b_id
LEFT JOIN CCC c ON c.id = b.c_id
LEFT JOIN DDD d ON d.id = c.d_id
WHERE b.c_id IS NULL
OR d.status = 1
继JPQL后返回3个结果
SELECT a
FROM AAA a
WHERE a.b.c IS NULL
继JPQL后返回10个结果
SELECT a
FROM AAA a
WHERE a.b.c.d.status = 1
但是以下JPQL返回10个结果,缺少3个null。
SELECT a
FROM AAA a
WHERE a.b.c IS NULL
OR a.b.c.d.status = 1
我错过了什么?我从哪里开始调试呢?
答案 0 :(得分:0)
我从哪里开始调试?
如果您不确定自己的ORM,请调整日志级别,以便查看生成的SQL查询或直接检查数据库日志。
我错过了什么?
条件WHERE a.b.c.d.status = 1
强制jpa提供程序为路径中的所有表创建内部联接(BBB,CCC,DDD)。这会中和OR条件a.b.c IS NULL
。