给定此查询:

final List list =
new JPAQuery(entityManager).from(qdevice).leftJoin(qdevice.parentDevice)
.list(Projections.bean(Device.class, qdevice.id, qdevice.parentDevice));

(parentDevice是Device的类型)

问题是查询仅在parentDevice不为null时返回设备。为什么?如何获得任何价值?如果我从投影中取出qdevice.parentDevice,则效果会很好。

QueryDsl版本是3.2.0

最佳答案

你可以试试这个吗

QDevice device = QDevice.device;
QDevice parentDevice = new QDevice("parentDevice");
List<Device> list = new JPAQuery(entityManager)
    .from(device)
    .leftJoin(device.parentDevice, parentDevice)
    .list(Projections.bean(Device.class, device.id, parentDevice));
qdevice.parentDevice中对list的引用可能被视为内部联接,因为您没有将其与左联接相关联。

07-26 08:57