2014-11-02 76 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基準可能被視爲一個內部聯接,因爲你不將它與左側加入。