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

JPA 联结主键的配置

2012-08-26 
JPA联合主键的配置???? ?两个或多个字段组成的主键,我们叫联合主键。在面向对象中,我们用JPA怎么定义这种情

JPA 联合主键的配置

???? ?两个或多个字段组成的主键,我们叫联合主键。在面向对象中,我们用JPA怎么定义这种情况呢?
?? ?? 怎么定义联合主键?用面向对象的思想来思考的话,联合主键里的复合主键(字段),可以把它看成一个整体,然后采用一个主键类来描述这个复合主键的字段。

关于联合主键类,大家一定要遵守以下几点JPA规范:

    必须提供一个public的无参数构造函数。 必须实现序列化接口。 必须重写hashCode()和equals()这两个方法。这两个方法应该采用复合主键的字段作为判断这个对象是否相等的。 联合主键类的类名结尾一般要加上PK两个字母代表一个主键类,不是要求而是一种命名风格。




ArtLinePK.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.ArtLine; ?? ??public?class?ArtLineTest?{ ?? ??????@BeforeClass?? ????public?static?void?setUpBeforeClass()?throws?Exception?{ ?? ????} ????????@Test?public?void?save(){ ?? ????????EntityManagerFactory?factory?=?Persistence ??????????.createEntityManagerFactory("itcast"); ?? ????????EntityManager?em?=?factory.createEntityManager(); ??????????em.getTransaction().begin(); ????????????em.persist(new?ArtLine("PEK","SHA","北京到上海")); ?? ??????????em.getTransaction().commit(); ??????????em.close(); ??????????factory.close(); ??????} ??}? 测试成功后,可以去查询看一下对应表的结构.??想想其中的原理.

热点排行