在hibernate的hql查詢中,假如說分組信息與試題是多對多關系,那么我們要在hql查詢中對含有多個分組信息的試題都要查詢出來。并同時查詢出相應試題的分組信息。那么此時hql要這樣寫:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
String[] groupIds = ojbects[ 1 ].toString().split( "," ); String hql = "SELECT distinct a.id FROM TmEduExamContent a" ; if (! "" .equals(groupIds[ 0 ])){ hql += " join a.groups as b " ; } hql += "and ( " ; for ( int i= 0 ;i<groupIds.length;i++){ hql += "b.id=" +groupIds[i] + " " ; if (i != groupIds.length- 1 ){ hql += "or " ; } } hql += ") " ; |
附上多對多配置:
引用
1
2
3
4
5
6
7
8
|
< set name = "groups" table = "TM_EDUCATION_CONTENT_GROUP" outer-join = "false" > < key column = "CONTENT_ID" /> < many-to-many class = "com.gd.po.ClassicCasesGroup" column = "GROUP_ID" /> </ set > < set name = "modelContents" table = "TM_MODELCONTENT_GROUP" outer-join = "false" > < key column = "GROUP_ID" /> < many-to-many class = "com.gd.po.TmEduExamModelContent" column = "MODELCONTENT_ID" /> </ set > |
如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://wjch-111.iteye.com/blog/1973031