JPA注解实现联合主键 _JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > JPA注解实现联合主键

JPA注解实现联合主键

 2012/2/14 10:22:31  bjtdeyx  程序员俱乐部  我要评论(0)
  • 摘要:当表中一个主键不能唯一标识一条记录的时候,就需要使用联合主键了,下面是使用JPA注解实现联合主键的代码1首先需要建立一个复合主键类,用来存放需要生产联合主键的属性,该类需要实现序列化。packagecom.ericsson.adp.entity.cons;importjava.io.Serializable;publicclassConsumerGroupMapPKimplementsSerializable{privateStringmsisdn
  • 标签:实现 注解 主键 JPA

当表中一个主键不能唯一标识一条记录的时候,就需要使用联合主键了,下面是使用JPA注解实现联合主键的代码

1?首先需要建立一个复合主键类,用来存放需要生产联合主键的属性,该类需要实现序列化

package?com.ericsson.adp.entity.cons;

import?java.io.Serializable;

public?class?ConsumerGroupMapPK?implements?Serializable{

????private?String?msisdn;//电话号码

????private?Long?tagGroupId;//(10)标签组id

????public?String getMsisdn() {

???????return?msisdn;

????}

????public?void?setMsisdn(String msisdn) {

???????this.msisdn?= msisdn;

????}

????public?Long getTagGroupId() {

???????return?tagGroupId;

????}

????public?void?setTagGroupId(Long tagGroupId) {

???????this.tagGroupId?= tagGroupId;

????}

}

?

然后再写一个类,该类对应数据库中的表,在该类中需要使用@IdClass(ConsumerGroupMapPK.class)引入上面写的复合主键类

同时在需要做成联合主键的属性上面加上@Id标明该属性是主键就好了

package?com.ericsson.adp.entity.cons;

?

import?javax.persistence.EmbeddedId;

import?javax.persistence.Entity;

import?javax.persistence.Id;

import?javax.persistence.IdClass;

import?javax.persistence.Table;

?

import?org.hibernate.annotations.Cache;

import?org.hibernate.annotations.CacheConcurrencyStrategy;

@Entity

@IdClass(ConsumerGroupMapPK.class)

@Table(name="T_CONS_CONSUMER_GROUP_MAP")

@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)

public?class?ConsumerGroupMap{

????@Id

????private?String?msisdn;//电话号码

????@Id

????private?Long?tagGroupId;//(10)标签组id

???

????public?ConsumerGroupMap() {

???????super();

???????//?TODO?Auto-generated constructor stub

????}

????public?ConsumerGroupMap(String msisdn, Long tagGroupId) {

???????super();

???????this.msisdn?= msisdn;

???????this.tagGroupId?= tagGroupId;

????}

???

????public?String getMsisdn() {

???????return?msisdn;

????}

????public?void?setMsisdn(String msisdn) {

???????this.msisdn?= msisdn;

????}

????public?Long getTagGroupId() {

???????return?tagGroupId;

????}

????public?void?setTagGroupId(Long tagGroupId) {

???????this.tagGroupId?= tagGroupId;

????}

???

}

发表评论
用户名: 匿名