08-hibernate一对一实例

IdCard.hbm.xml

<!-- 既是主键,又是外键 -->
	<class name="IdCard" table="id_card">
		<id name="id">
			<generator class="foreign" >
				<!--通过下面配置的person进行获取id  -->
				<param name="property">person</param>
			</generator>
		</id>
		<property name="name" />
		<!-- 一对一标签配置 ,constrained表示加约束,对生成表语句有影响。-->
		<one-to-one name="person"  constrained="true"/>
	</class>

IdCard.java

private int id;
	private String name;
	private Person person;

Person.java

	private int id;
	private String name;
	private IdCard idCard;

Person.hbm.xml

<class name="Person">
		<id name="id">
			<generator class="native" />
		</id>
		<property name="name" />
		<!-- 表示Person中的idCard属性 -->
		<one-to-one name="idCard"/>
	</class>
测试类:

One2One.java

package cn.itcat.hibernate;

import org.hibernate.Session;
import org.hibernate.Transaction;

import cn.itcast.hibernate.domain.IdCard;
import cn.itcast.hibernate.domain.Person;

public class One2One {
	public static void main(String[] args) {
		add();
		query(1);
	}

	/**
	 *@MethodName:add
	 *@Description:添加
	 *@author:徐凯强
	 *@return Department
	 *@date:2014-7-9下午10:30:17
	 */
	static Person add() {
		Session session = null;
		Transaction transaction = null;
		try {
			Person person= new Person();
			person.setName("person name");

			IdCard idCard = new IdCard();
			idCard.setPerson(person);
			idCard.setName("idcard name");
			session = HibernateUtil.getSession();
			transaction = session.beginTransaction();
			session.save(person);
			session.save(idCard);
			transaction.commit();
			return person;
		} finally {
			if (session != null) {
				session.close();
			}
		}
	}
	
	static Person query(int id){
		Session session=null;
		Person person=null;
		try {
			session = HibernateUtil.getSession();
			person=(Person) session.get(Person.class, id);
			System.out.println(person.getName());
			//**代理对象的初始化,懒加载有关*//*
			//Hibernate.initialize(employee.getDepartment());
			//System.out.println(employee.getDepartment().getName());
			return person;
		} finally {
			if (session != null) {
				session.close();
			}
		}
	}
	
}
源代码:

一对一实例下载地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会编程的阿强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值