查看“Hibernate笔记 5:实体关联关系:多对多”的源代码
←
Hibernate笔记 5:实体关联关系:多对多
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:Hibernate]] == 关于 == “多对多”的关系,同样可分为“单项关联”、“双向关联”。 # '''单项关联''': #: <syntaxhighlight lang="Java" highlight=""> class A{ ... Set<B> bs; } class B{ ... } </syntaxhighlight> #: 或 #: <syntaxhighlight lang="Java" highlight=""> class A{ ... } class B{ ... Set<A> as; } </syntaxhighlight> # '''双向关联''':(常用) #: <syntaxhighlight lang="Java" highlight=""> class A{ ... Set<B> bs; } class B{ ... Set<A> as; } </syntaxhighlight> 无论其采用何种方式维护关联关系,其数据库中表关系是一定的。 [[File:Hibernate:实体关系:多对多.png|600px]] == 关系维护 == 以“用户”(User)与“角色”(Role)为例: # 一个用户可以有多个角色; # 一个角色可以指定给多个用户; === 单向关联 === 多对多关系的“单向关联”,即在任意一方维护关联关系即可。 而较多使用的是“双向关联”。 === 双向关联 === 示例: # 在“User”中:维护其关联的“Role”集合; #: <syntaxhighlight lang="Java" highlight="8-9"> public class User{ private Long user_id; private Long user_code; private String user_name; private String user_password; private String user_state; // 用户类中维护角色对象集合 private Set<Role> roles = new HashSet<Role>(); // getter、setter ... } </syntaxhighlight> #: <syntaxhighlight lang="xml" highlight="13-17"> ... <hibernate-mapping> <class name="cn.itcast.hibernate.domain.User" table="sys_user"> <id name= "user_id"> <generator class="native"/> </id> <property name="user_code"/> <property name="user_name"/> <property name="user_password"/> <property name="user_state"/> <!-- 配置关联角色集合 --> <set name="roles" table="sys_user_role"> <key column="user_id"></key> <many-to-many class= "cn.itcast.hibernate.domain.Role" column="role_id"/> </set> </class> </hibernate-mapping> </syntaxhighlight> # 在“Role”中:维护其关联的“User”; #: <syntaxhighlight lang="Java" highlight="6-7"> public class Role{ private Long role_id; private String role_name; private String role_mome; // 角色类中维护用户对象集合 private Set<User> users = new HashSet<User>(); // getter、setter ... } </syntaxhighlight> #: <syntaxhighlight lang="xml" highlight="11-15"> ... <hibernate-mapping> <class name="cn.itcast.hibernate.domain.Role" table="sys_role"> <id name= "role_id"> <generator class="native"/> </id> <property name="role_name"/> <property name="role_mome"/> <!-- 配置关联用户集合 --> <set name="roles" table="sys_user_role"> <key column="role_id"></key> <many-to-many class= "cn.itcast.hibernate.domain.User" column="user_id"/> </set> </class> </hibernate-mapping> </syntaxhighlight>
返回至“
Hibernate笔记 5:实体关联关系:多对多
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息