????? HQL查詢多表的時候,取出結(jié)果是兩個對象的列表,但是我只要我自己想要的屬性,之前的HQL語句是這樣寫的:
from?Hytxbz?h,Tgbzk?t?where?h.hytxbzid=t.hytxbzid?and?t.bztgid=:bztgid結(jié)果我debug去看query.list();是Hytxbz和Tgbzk兩個對象的列表,結(jié)果并不是我想要的,我改成
from?Hybztx?h?where?h.hytxbzid?in?(select?t.hytxbzid?from?Tgbzk?where?t.bztgid?=:bztgid)還是不行,google一把,發(fā)現(xiàn)可以這樣寫
select?h?from?Hytxbz?as?h,Tgbzk?as?t?where?h.hytxbzid=t.hytxbzid?and?t.bztgid=:bztgid如果想取得對應(yīng)屬性的話,也可以這樣寫
select?h.hytxbzid?from?Hytxbz?as?h,Tgbzk?as?t?where?h.hytxbzid=t.hytxbzid?and?t.bztgid=:bztgid發(fā)現(xiàn)in的語句可以這樣寫

String???ids[]=new???String[]
{"1","2","3"};???
????
??String???hql=???"???from???com,you.YourPOJO???where???id???in???(?)";???
????
????Query???query???=???session.createQuery(hql);???
??query???.setParameters(ids);???
????
??相關(guān)方法:???
????
????Query???setParameters(Object[]???objectArray,???Type[]???typeArray)???throws???HibernateException;???
??????Query???setParameterList(String???string,???Collection???collection,???Type???type)???throws???HibernateException;???
??????Query???setParameterList(String???string,???Collection???collection)???throws???HibernateException;???
??????Query???setParameterList(String???string,???Object[]???objectArray,???Type???type)???throws???HibernateException;???
??????Query???setParameterList(String???string,???Object[]???objectArray)???throws???HibernateException
posted on 2009-01-19 14:40
JasonChou 閱讀(22573)
評論(7) 編輯 收藏 所屬分類:
j2ee