浏览 2209 次
锁定老帖子 主题:hibernate高级查询N表多对多问题
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-29
user :id , userName , password...... 有一分组表. role: id , roleName, .... 有一功能表. function: id, functionName.. .. 他们是多对多关系. 有两个表做外键 表一 userrelationrole: userid, roleid 放用户权限的多对多映射 表二 permission : roleid,functionid 用于放权限和功能的多对多映射 在hibernate 中是用set,bag来做双向的多对多的..事关..list是不可以做双向的 hibernate代码片段: <set name="users" table="userrelationrole" lazy="false" inverse="true" cascade="save-update" order-by="userId asc"> <cache usage="read-write"/> <key column="roleId" /> <many-to-many class="org.ylcompany.rain.hibernate.User" column="userId" outer-join="auto" /> </set> <set name="functions" table="permission" lazy="false" cascade="save-update" order-by="functionId"> <cache usage="read-write"/> <key column="roleId" /> <many-to-many class="org.ylcompany.rain.hibernate.Function" column="functionId" /> </set> hibernate代码片段 这个是role中的hibernate片段 假如当我和道一个userid的时候,我要得到这个用户的功能的时候, 就要 User user = (User)basedao.loadByKey(org.ylcompany.rain.hibernate.User.class,"userName",this.userName); Set _roles = user.getRoles(); Iterator _it = _roles.iterator(); while(_it.hasNext() ){ Role role = (Role)_it.next(); Set _functions = role.getFunctions(); Function _function = new Function(); Iterator __it = _functions.iterator(); while(__it.hasNext() ){}} 要这样子去迭代.. 都要这样子麻烦的去查找功能的吗..这个就是在hibernate中的级联查询吗? 有没方法,当知道userid时,当得到全部的function对象呢.? 还有就是.在hibernate中..的高级查询.用Restrictions来做日期的范围查询是可以.. 有没方法直接去得到某月的记录呢.. 这个当然我的记录中是有记录的日期时间的. 我对hibernate的高级查询,N表多表多关联不是太懂..请网友们帮手..回复一下. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |