Hibernate中一对一映射详细解析(内含实例)
2017-10-25 22:52
423 查看
Hibernate中的一对一映射关系,这里以用户和用户信息为例,为大家介绍Hibernate一对一的关系。
在开始阅读实例之前要明确以下几点:
1.先创建一个数据库,通过Hibernate创建数据表,hibernate.cfg.xml文件中加入如下属性。
2.创建主键的方式是uuid2,所以id的类型是String型,在数据库中是varchar型。
3.通过在user.hbm.xml中设置
4.通过在userInfo.hbm.xml中设置
UserInfo.java
<2>.配置user.hbm.xml
<3>.配置userInfo.hbm.xml
此次分享就此结束,如有不足,敬请留言!
在开始阅读实例之前要明确以下几点:
1.先创建一个数据库,通过Hibernate创建数据表,hibernate.cfg.xml文件中加入如下属性。
<property name="hibernate.hbm2ddl.auto">update</property>
2.创建主键的方式是uuid2,所以id的类型是String型,在数据库中是varchar型。
3.通过在user.hbm.xml中设置
cascade="all"即:级联设置成适用所有级联。
4.通过在userInfo.hbm.xml中设置
cascade="all" constrained="true"设置所有级联和给userInfo表设置一个外键。
1.实体类代码如下:
User.javapublic class User { private String id; private String username; private String pwd; private UserInfo userInfo; // --------------此处已省略所有的get方法和set方法--------- }
UserInfo.java
public class UserInfo { private String id; private String phone; private String email; private User user; // --------------此处已省略所有的get方法和set方法--------- }
2.配置文件
<1>.hibernate.cfg.xml文件里面加入配置小配置文件,加入如下代码。<mapping resource="com/lanou/test/mapping/user.hbm.xml"></mapping> <mapping resource="com/lanou/test/mapping/userInfo.hbm.xml"></mapping>
<2>.配置user.hbm.xml
<?xml version="1.0"?> <!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.lanou.test.beans.User" table="tb_user"> <id name="id" > <generator class="uuid2"></generator> <!-- id(主键)的生成规则 --> </id> <-- 映射实体类的属性 --> <property name="username"></property> <property name="pwd"></property> <-- 配置一对一关系 --> <!-- cascade 级联 name:要映射的配置文件名--> <one-to-one name="userInfo" class="com.lanou.test.beans.UserInfo" cascade="all"></one-to-one> </class> </hibernate-mapping>
<3>.配置userInfo.hbm.xml
<?xml version="1.0"?> <!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.lanou.test.beans.UserInfo" table="tb_userInfo"> <id name="id"> <generator class="foreign"> <param name="property">user</param> </generator> <!-- id(主键)的生成规则 --> </id> <-- 映射实体类的属性 --> <property name="phone"></property> <property name="email"></property> <-- 配置一对一关系 --> <!-- cascade 级联 name:要映射的配置文件名 constrained:约束--> <one-to-one name="user" class="com.lanou.test.beans.UserInfo" cascade="all" constrained="true" ></one-to-one> </class> </hibernate-mapping>
3.写测试类 TestMain.java
public class TestMain { public static void main(String[] args) { Configuration config = new Configuration().configure(); SessionFactory sf = config.buildSessionFactory(); Session session = sf.openSession(); Transaction tx = session.beginTransaction(); User user = new User(); UserInfo userInfo = new UserInfo(); user.setPwd("aaaa"); user.setUsername("cccc"); userInfo.setEmail("123456@sina.com"); userInfo.setPhone("13669369170"); user.setUserInfo(userInfo); userInfo.setUser(user); session.save(user); tx.commit(); System.exit(0); } }
此次分享就此结束,如有不足,敬请留言!
相关文章推荐
- hibernate中一对一映射配置详细解析(二)
- hibernate中一对一映射配置详细解析(一)
- Hibernate映射解析——七种映射关系(比较详细)
- Hibernate(五)——经典解析一对一关联映射
- hibernate中的集合映射详细解析
- Hibernate基于主键一对一映射操作实例
- 深入解析Java的Hibernate框架中的一对一关联映射
- Hibernate主键一对一关联映射实例【xml和注解版本@OneToOne@JoinColumn(name="wifeId")--主键单向】(十二)
- hibernate中的集合映射详细解析
- hibernate中继承映射配置详细解析(四)
- Hibernate关系映射 --- 一对一实例分析(双向关联,是基于主键的)
- Hibernate映射解析——七种映射关系 目前看到的最详细的,转载下,后面可能会添加一些
- hibernate中组件映射配置详细解析
- hibernate中继承映射配置详细解析(二)
- Hibernate基于外键一对一映射操作实例
- Eclipse创建Hibernate入门实例代码详细解析
- Hibernate(五)——经典解析一对一关联映射
- Hibernate中的one2one映射实例二(一对一主键关联映射双向)
- hibernate中多对多映射配置详细解析
- Hibernate实体关系映射实例解析