给定此查询:
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
的引用可能被视为内部联接,因为您没有将其与左联接相关联。