package com.rlovep.one2one;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.Test;
//测试一对一
public class App {
private static SessionFactory sf=null;
static{
Configuration config=new Configuration().configure().addClass(UserI.class).addClass(IdCard.class);
//创建serviceRegistry 代替buildSessionFactory()方法
ServiceRegistry serviceRegistry =new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
// 创建session的工厂对象
sf = config.buildSessionFactory(serviceRegistry);
}
@Test
public void testSave(){
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
UserI user=new UserI();
user.setUserName("peace");
IdCard idCard=new IdCard();
idCard.setCardNum("4306261991**");
idCard.setPlace("五山");
//关系建立
idCard.setUser(user);//这里建立关系,必须这样建立。user.setIdCard(idCard)不会保存idcard
//保存
session.save(idCard);
tx.commit();
session.close();
}
@Test
public void testGet(){
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
UserI user=null;
IdCard idCard=null;
//不能获得User中的Idcard
user= (UserI)session.get(UserI.class, 1);
System.out.println(user.getIdCard().getCardNum());
System.out.println("-----------");
//idCard=(IdCard)session.get(IdCard.class, "4306261991**");//外键用这个查询
idCard=(IdCard)session.get(IdCard.class, 1);
System.out.println(idCard.getUser().getUserName());
tx.commit();
session.close();
}
}