2014-11-02 73 views
2

给出这个查询:QueryDSL预测和空值

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

(parentDevice是设备的类型)

的问题是,当parentDevice不为空的查询只返回该设备。为什么?如何获得任何价值?如果我从投影中取出qdevice.parentDevice比结果好。

QueryDsl版本是3.2.0

回答

2

难道你试试这个

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)); 

listqdevice.parentDevice基准可能被视为一个内部联接,因为你不将它与左侧加入。