2008-04-29
hibernate高级查询N表多对多问题
关键字: n表, 双向, 多对多
有一用户表.
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表多表多关联不是太懂..请网友们帮手..回复一下.
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表多表多关联不是太懂..请网友们帮手..回复一下.
- 14:30
- 浏览 (531)
- 评论 (0)
- 分类: Struts Spring Hibernate
- 进入论坛
- 相关推荐
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则







评论排行榜