one2onetest.java

来自「hibernate 关联实例包括(一对一关联)一对多关联(单向」· Java 代码 · 共 129 行

JAVA
129
字号
package com.bjsxt.hibernate;

import org.hibernate.Session;

import junit.framework.TestCase;

public class One2OneTest extends TestCase {
	
	
	public void saveOne2One() {
		Session session = null;
		try {
			session = HibernateUtils.getSession();
			session.beginTransaction();
			IdCard idCard = new IdCard();
			idCard.setCardNo("12345678909999999");
			
			Person person = new Person();
			person.setName("张三");
			
			//在两个对象之间建立关联
			person.setIdCard(idCard);
			
			//不能保存,因为IdCard为瞬时状态
			session.save(person);
			session.getTransaction().commit();
		}catch(Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}

	public void saveOne2One1() {
		Session session = null;
		try {
			session = HibernateUtils.getSession();
			session.beginTransaction();
			IdCard idCard = new IdCard();
			idCard.setCardNo("12345678909999999");
			session.save(idCard);
			
			Person person = new Person();
			person.setName("张三");
			
			//在两个对象之间建立关联
			person.setIdCard(idCard);
			
			//不能保存,因为IdCard为瞬时状态
			session.save(person);
			session.getTransaction().commit();
		}catch(Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}

	public void saveOne2One2() {
		Session session = null;
		try {
			session = HibernateUtils.getSession();
			session.beginTransaction();
			
			IdCard idCard = new IdCard();
			idCard.setCardNo("12345678909999999");
			
			Person person = new Person();
			person.setName("张三");
			
			//在两个对象之间建立关联
			//person.setIdCard(idCard);
			idCard.setPerson(person);
			
			session.save(person);
			session.getTransaction().commit();
		}catch(Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}	
	/**
	 * 从Person加载数据
	 *
	 */
	public void testLoadOne2One() {
		Session session = null;
		try {
			session = HibernateUtils.getSession();
			session.beginTransaction();
			Person person = (Person)session.load(Person.class, 2);
			System.out.println("姓名:" + person.getName());
			System.out.println("身份证号:" + person.getIdCard().getCardNo());
			session.getTransaction().commit();
		}catch(Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}
	
	/**
	 * 从IdCard加载数据
	 *
	 */
	public void testLoadOne2One1() {
		Session session = null;
		try {
			session = HibernateUtils.getSession();
			session.beginTransaction();
			IdCard idcard = (IdCard)session.load(IdCard.class, 1);
			System.out.println("姓名:" + idcard.getPerson().getName());
			System.out.println("身份证号:" + idcard.getCardNo());
			session.getTransaction().commit();
		}catch(Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?