public class Group extends BaseEntity {
private String name; // 用户组名
private String describe;
private Set<Role> roles=new HashSet<Role>(); //组与角色(多对多)
.....
}
public class Role extends BaseEntity {
private String name; // 角色名
private String lxDescribe;
private Set<Group> groups = new HashSet<Group>(); // 角色与组(多对多)
...
}
<hibernate-mapping>
<class name="com.lxitedu.entity.group.Group" table="LXGroup" lazy="false">
<id name="id" type="long">
<generator class="native"></generator>
</id>
<property name="name" column="LXName"></property>
<property name="describe" column="LXDescribe"></property>
<set name="roles" table="role_group" cascade="all">
<key column="group_id"></key>
<many-to-many column="role_id" class="com.lxitedu.entity.role.Role"></many-to-many>
</set>
</class>
</hibernate-mapping><hibernate-mapping>
<class name="com.lxitedu.entity.role.Role" table="LxRole" lazy="false">
<id name="id" type="long">
<generator class="native"></generator>
</id>
<property name="name" type="java.lang.String"></property>
<property name="lxDescribe" type="java.lang.String" column="lxDescribe"></property>
<set name="groups" table="role_group">
<key column="role_id"></key>
<many-to-many column="group_id" class="com.lxitedu.entity.group.Group"></many-to-many>
</set>
<set name="users" table="role_user" inverse="true" cascade="all">
<key column="role_id"></key>
<many-to-many column="user_id" class="com.lxitedu.entity.user.User"/>
</set>
</class>
</hibernate-mapping>多对多,我保存做好了了,但是多对多的查询不知道做?那位大哥知道告诉我,分少了我就再加!
public List getAllGroup() {
return getHibernateTemplate().loadAll(Group.class);
}
这样做对不对?好像不能查出来
private String name; // 用户组名
private String describe;
private Set<Role> roles=new HashSet<Role>(); //组与角色(多对多)
.....
}
public class Role extends BaseEntity {
private String name; // 角色名
private String lxDescribe;
private Set<Group> groups = new HashSet<Group>(); // 角色与组(多对多)
...
}
<hibernate-mapping>
<class name="com.lxitedu.entity.group.Group" table="LXGroup" lazy="false">
<id name="id" type="long">
<generator class="native"></generator>
</id>
<property name="name" column="LXName"></property>
<property name="describe" column="LXDescribe"></property>
<set name="roles" table="role_group" cascade="all">
<key column="group_id"></key>
<many-to-many column="role_id" class="com.lxitedu.entity.role.Role"></many-to-many>
</set>
</class>
</hibernate-mapping><hibernate-mapping>
<class name="com.lxitedu.entity.role.Role" table="LxRole" lazy="false">
<id name="id" type="long">
<generator class="native"></generator>
</id>
<property name="name" type="java.lang.String"></property>
<property name="lxDescribe" type="java.lang.String" column="lxDescribe"></property>
<set name="groups" table="role_group">
<key column="role_id"></key>
<many-to-many column="group_id" class="com.lxitedu.entity.group.Group"></many-to-many>
</set>
<set name="users" table="role_user" inverse="true" cascade="all">
<key column="role_id"></key>
<many-to-many column="user_id" class="com.lxitedu.entity.user.User"/>
</set>
</class>
</hibernate-mapping>多对多,我保存做好了了,但是多对多的查询不知道做?那位大哥知道告诉我,分少了我就再加!
public List getAllGroup() {
return getHibernateTemplate().loadAll(Group.class);
}
这样做对不对?好像不能查出来
解决方案 »
- <s:property value="messageStore.message" />为什么可以直接调用私有成员?
- 跪求一个类似的管理系统,用XML作为数据存储,开发采用tomcat+jsp
- java韩文乱码问题怎么解决
- 谁有strut的学习的电子书啊?(有分相赠 ^_^ )
- 100点求助:tomcat在那里下载?
- 请问哪儿有XML电子图书下载?
- 关于struts页面用标签显示数据库中查询出来的数据问题,类似修改
- 初学者的简单问题,很容易得分
- Eclipse中对菜单状态的控制
- jndi在rmi中的作用?
- 高分求,关于dao层面向对象增删查改传递bean参数为基本数据类型时处理方式的疑问
- hibernate 一对多 插入数据后获取id的疑问
如果要是在数据库端设计
用户组和角色之间是多对多的关联关系,这两张表之间最好不要直接关联,应该设置一张关联表来表达用户组表与角色表之间的关联,
这样在Hibernate中,设置的时候,用户组实体与关联对象之间关联(多对一),角色也与关联对象关联(多对一),这样设计就比较清楚了。
当你打算做多对多关联的时候,必须要设置一个关联表,这样做才最合理。
<set name="groups" table="role_group">
<key column="role_id"> </key>
<many-to-many column="group_id" class="com.lxitedu.entity.group.Group"> </many-to-many>
</set>
你这里group_id的类型应该是个集合吧,集合中存在的类型应该是关联类的类型,可这里边你写的还是组类型建议
用户组配置文件
<set name="groups">
<key column="role_id"> </key>
<on-to-many column="group_id" class="com.lxitedu.entity.group.Role_Group"> </many-to-many>
</set>关联配置文件
<many-to-one>用户角色采用
<set>
<on-to-many>
</set>要特别注意集合中放置的是什么类型
如下:
组名,角色名(可以有多个),组描述单独只显示组里的信息我可以做到,还要把Set里对应的角色信息显示出来,我不知道怎么做
关联类中存放由用户组和用户角色的对象
用户角色中存放的也有一个set的集合,集合类型也是关联类
那么你就可以考虑一下用户组可以得到关联类,再根据关联类的每个用户角色对象,当然可以得到用户角色了
很多做权限的时候,这样设计才是最普遍合理的设计
下面的代码是根据组名查询其所有角色
public List getRoles(String groupName) {
return getHibernateTemplate().find("select g.roles from Group g where g.name=?",groupName);
}
2.在项目设计中与到了点问题,role,role_group,group
role与group是多对多的,role_group是中间表,我删除一个条role数据把与之关联的group表的数据也删除了,而删除role表数据时它也把group表相关联的数据给删除了,
role是父表,group是从表,
我现在想这么做:删除role表里的数据,group与之对应的也删除 ,而删除group表里的数据,role表里的数据不动,只删除role_group表里的数据,不知道怎么控制?以前的问题我解决了,是lazy位置的问题...分不够我可以加,如果你们以前做过这样的例题就更好...