《Hibernate-一对一唯一外键关联双向》由会员分享,可在线阅读,更多相关《Hibernate-一对一唯一外键关联双向(4页珍藏版)》请在金锄头文库上搜索。
1、IdCard.java private int id; private String cardNo; private Person person; Person.java private int id; private String name; private IdCard idCard; public class One2OneTest extends TestCase public void testSave1() Session session = null; try session = HibernateUtils.getSession(); session.beginTransact
2、ion();IdCard idCard = new IdCard();idCard.setCardNo(“1111111111111“);Person person = new Person(); person.setName(“女女“); person.setIdCard(idCard);/不能成功保存,因为 IdCard 是 Transient 状态 session.save(person);session.getTransaction().commit(); catch(Exception e) e.printStackTrace(); session.getTransaction().
3、rollback(); finally HibernateUtils.closeSession(session); public void testSave2() Session session = null; try session = HibernateUtils.getSession(); session.beginTransaction();IdCard idCard = new IdCard(); idCard.setCardNo(“1111111111111“); session.save(idCard);Person person = new Person(); person.s
4、etName(“女女“); person.setIdCard(idCard);session.save(person);session.getTransaction().commit(); catch(Exception e) e.printStackTrace(); session.getTransaction().rollback(); finally HibernateUtils.closeSession(session); public void testLoad1() Session session = null;try session = HibernateUtils.getSes
5、sion(); session.beginTransaction();Person person = (Person)session.load(Person.class, 2); System.out.println(“person.name=“ + person.getName(); System.out.println(“idCard.cardNo=“ + person.getIdCard().getCardNo(); session.getTransaction().commit(); catch(Exception e) e.printStackTrace(); session.get
6、Transaction().rollback(); finally HibernateUtils.closeSession(session); public void testLoad2() Session session = null; try session = HibernateUtils.getSession(); session.beginTransaction();IdCard idCard = (IdCard)session.load(IdCard.class, 1); System.out.println(“idcard.cardNo=“ + idCard.getCardNo(
7、); System.out.println(“idcard.person.name=“ + idCard.getPerson().getName();session.getTransaction().commit(); catch(Exception e) e.printStackTrace(); session.getTransaction().rollback(); finally HibernateUtils.closeSession(session); hibernate 一对一唯一外键关联映射(双向关联 PersonIdCard)一对一唯一外键关联双向,需要在另一端(idcard) , 添加标签,指示 hibernate 怎样加载这个关联对象,是默认根据主键加载 person,外键关联映射中,因为两个实体采用的是 person 的外键维护的关系,所以不能指定主键加载 person,而要根据 person 的外键加载,所以采用如下映射方式:t_personid | name | idcard1| 男男 | 100 2| 女女 | 200t_idcardid | cardNo100 | 111111111111 200 | 22222222222