左外连接的mysql查询是:
rows, err := models.Db.Query("SELECT pKey, names FROM foo")
for rows.Next() {
var pKey int
var names []string
err = rows.Scan(&pKey, (*pq.StringArray)(&names))
}
结果是一个列表,其中包含entity1的所有实体,其中entity2在其活动值为true时被设置,否则entity2类为null:
由于JPA(link)中的路径问题,我在JPA中建立了与外连接的关系:
SELECT a.*, b.* FROM entity1 as a
LEFT OUTER JOIN entity2 as b
ON a.val = b.val AND b.active = true;
其中entity1和entity2被简化为:
SELECT new wrapper(a, b) FROM Entity1 a
LEFT JOIN a.entity2 b
WHERE b IS NULL OR b.active = true
现在我在jpa查询中得到以下结果:
这不是左外连接的预期行为。