[英]left join first match in hql
select
schedulingpool.id,
schedulingpool.allocationVersion,
schedulingpool.tx.statusId,
schedulingpool.name,
schedulingpool.description,
schedulingpool.schedulingPoolAddresses.name,
schedulingpool.schedulingPoolAddresses.zip,
schedulingpool.schedulingPoolAddresses.city,
schedulingpool.schedulingPoolAddresses.countryId,
schedulingpool.schedulingPoolAddresses.street,
schedulingpool.statusId,
schedulingpool.tx.name,
schedulingpool.note1,
schedulingpool.note2
from
com.xx.module.mm.jpa.SchedulingPool as schedulingpool
left join schedulingpool.tx
left join schedulingpool.schedulingPoolAddresses
where schedulingpool.clientId = :clientId
order by schedulingpool.id DESC
javax.servlet.ServletException:java.lang.IllegalArgumentException:org.hibernate.QueryException:非法嘗試取消引用元素屬性為[name]的集合[scheduling0_.id.schedulingPoolAddresses]
一個調度池可以有多個地址,當我執行該語句時,我得到了異常。 有沒有辦法獲得匹配的第一個地址並加入它以防止出現此異常?
您需要使用別名
select
schedulingpool.id,
schedulingpool.allocationVersion,
tx.statusId,
schedulingpool.name,
schedulingpool.description,
schedulingPoolAddresses.name,
schedulingPoolAddresses.zip,
schedulingPoolAddresses.city,
schedulingPoolAddresses.countryId,
schedulingPoolAddresses.street,
schedulingpool.statusId,
tx.name,
schedulingpool.note1,
schedulingpool.note2
from
com.xx.module.mm.jpa.SchedulingPool as schedulingpool
left join schedulingpool.tx tx
left join schedulingpool.schedulingPoolAddresses schedulingPoolAddresses
where schedulingpool.clientId = :clientId
order by schedulingpool.id DESC
你需要有關聯的SchedulingPool
類的schedulingPoolAddresses
和tx
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.