首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

JPA中的一对一双向联系关系(二)

2012-11-01 
JPA中的一对一双向关联(二)IDCard.java package?junit.test ????import?javax.persistence.EntityManager

JPA中的一对一双向关联(二)

IDCard.java

        package?junit.test; ????import?javax.persistence.EntityManager; ??import?javax.persistence.EntityManagerFactory; ??import?javax.persistence.Persistence; ????import?org.junit.BeforeClass; ??import?org.junit.Test; ????import?cn.itcast.bean.IDCard; ??import?cn.itcast.bean.Person; ????public?class?OneToOneTest?{ ????????@BeforeClass??????public?static?void?setUpBeforeClass()?throws?Exception?{ ??????} ????????@Test??????public?void?save()?{ ??????????EntityManagerFactory?factory?=?Persistence ??????????????????.createEntityManagerFactory("itcast"); ??????????EntityManager?em?=?factory.createEntityManager(); ??????????em.getTransaction().begin(); ????????????Person?person?=?new?Person("小叶");???//?person是关系维护端。 ??????????person.setIdCard(new?IDCard("19881210"));????//?通过person把idCard放进去,这关系就由person来维护了。 ??????????em.persist(person);?//?先保存idCard,得到保存记录的id,用id作为外键的值,再保存person。因为person表里的外键值是idcard表里面的主键,只有先生成主键值才有外键值。 ????????????em.getTransaction().commit(); ??????????em.close(); ??????????factory.close(); ??????} ????}??

      ?
      ?? 谁是关系维护端,谁就负责外键字段的更新。
      ?? Person是关系维护端,IDCard是关系被维护端,怎么维护更新呢?往Person里面设置idCard,这样就相当于把关系建立起来了;如果通过IDCard设置person的话,那么这种关系是建立不起来的,因为IDCard是关系被维护端

热点排行