hibernate--多对一(一对多)单向外键关联
来源:互联网 发布:c 程序员 编辑:程序博客网 时间:2024/06/07 04:07
-------------------------------------------------------------------------
多对一
一、通过annotation注解:
Group.java:
package com.bean;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name="t_group")public class Group {private int id;private String name;@Idpublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}User.java:
package com.bean;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import javax.persistence.Table;@Entity@Table(name="t_user")public class User {private int id;private String name;private Group group;@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@ManyToOne@JoinColumn(name="groupId")public Group getGroup() {return group;}public void setGroup(Group group) {this.group = group;}}cfg.xml配置:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/user</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <property name="hbm2ddl.auto">update</property> <property name="show_sql">true</property> <property name="format_sql">true</property> <property name="current_session_context_class">thread</property> <mapping class="com.bean.Group"/> <mapping class="com.bean.User"/> <!-- <mapping resource="com/bean/Husband.hbm.xml"/>--> </session-factory></hibernate-configuration>
二、通过XML配置:
User.hbm.xml:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping> <class name = "com.bean.User" table = "t_user" > <id name = "id" column="id"> <generator class="native"/> </id> <property name="name" /> <many-to-one name="group" column="groupId"/> </class></hibernate-mapping>Group.hbm.xml:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping> <class name = "com.bean.Group" table = "t_group" > <id name = "id" column="id"> <generator class="native"/> </id> <property name="name" /> </class></hibernate-mapping>cfg.xml文件中修改映射配置:
<mapping resource="com/bean/User.hbm.xml"/> <mapping resource="com/bean/Group.hbm.xml"/>
----------------------------------------------------------------------------------------------------------------
一对多
一:annotation注解:
Group.java:
package com.bean;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.OneToMany;import javax.persistence.Table;@Entity@Table(name="t_group")public class Group {private int id;private String name;private Set<User> users = new HashSet<User>();@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@OneToMany@JoinColumn(name="groupId")public Set<User> getUsers() {return users;}public void setUsers(Set<User> users) {this.users = users;}}User.java:
package com.bean;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import javax.persistence.OneToMany;import javax.persistence.Table;@Entity@Table(name="t_user")public class User {private int id;private String name;@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
二:XML配置:
Group.hbm.xml配置:
<set name="users"> <key column="groupId"></key> <one-to-many class="com.bean.User2"/> </set>
-------------------------------------------------------------------------------------------
一对多双向关联和多对一双向关联是没有区别的,通常说成一对多双向关联。将一对多和多对一单向关联综合起来就是一对多双向关联。
在映射一对多的双向关联关系时,应该在“one”方把<set>元素的inverse属性设为true,这样可以提高应用的性能。inverse="false" 为主控方,inverse="true"为被控方
阅读全文
0 0
- hibernate--多对一(一对多)单向外键关联
- Hibernate关系映射级别注解(一对多单向外键关联、一对多(多对一)双向外键关联)
- hibernate annotation 之 一对多单向外键关联
- Hibernate之一对多单向外键关联(OneToMany)
- 03-一对多单向外键关联
- Hibernate关系映射级别注解(多对一单向外键关联)
- hibernate多对一单向外键关联——注解实现
- HQL一对多单向外键关联查询
- hibernate annotation 之 一对多、多对一双向外键关联
- Hibernate关系映射级别注解(多对多单向外键关联、多对多双向外键关联)
- hibernate一对多,多对一关联
- 037:hibernate一对一双向外键关联(Annotation)
- 037:hibernate一对一双向外键关联(xml)
- hibernate一对一双向外键关联
- hibernate一对一双向外键关联_Annotation
- hibernate一对一双向外键关联_XML
- hibernate Annotation一对一双向外键关联
- hibernate一对一双向外键关联
- Java开发面试:高并发秒杀系统如何设计与优化
- 2017第35届中国·兰州(春季)广告展会刊(参展商名录)
- Git和svn版本控制工具的必忽略文件
- CSS定位Position区分
- boost库中线程的使用
- hibernate--多对一(一对多)单向外键关联
- 内存映射IO空间的读写函数writeb(), writew(), writel()
- mybatis的insert语句获取自增id的方法(mySQL)
- 计算机网络中各层的协议图表
- plsql工具对oracle数据的导入导出
- 工作流创建数据库
- mt6582 camera 移植
- ApiDemos学习知识点Content-PickContacts(5)
- Opencv Qt 学习笔记(一)安装qt opencv 环境Win7(cmake3.9.1和Opencv3.3.0)