?? one2onetest.java
字號:
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("張三");
//在兩個對象之間建立關聯(lián)
person.setIdCard(idCard);
//在一對一主鍵關聯(lián)映射中,存儲Person對象的時候,其關聯(lián)對象IdCard也被同時存儲
//而不會拋出TransientObjectException,因為它默認了級聯(lián)屬性
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");
Person person = new Person();
person.setName("張三");
//在兩個對象之間建立關聯(lián)
//person.setIdCard(idCard);
idCard.setPerson(person);
//不會保存成功,因為Person的ID依賴與IdCard的Id,而
//person對象不持有IdCard的引用,也就是說,Person對象
//中的idCard屬性為null,因此無法生成person對象的Id
session.save(person);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
/**
* 從Person加載數(shù)據(jù)
*
*/
public void testLoadOne2One() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
Person person = (Person)session.load(Person.class, 1);
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加載數(shù)據(jù)
*
*/
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 + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -