加载中…
个人资料
心碎逍遥
心碎逍遥
  • 博客等级:
  • 博客积分:0
  • 博客访问:7,290
  • 关注人气:154
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

JPA注解实现联合主键

(2012-02-07 14:37:21)
标签:

杂谈

分类: J2EE

当表中一个主键不能唯一标识一条记录的时候,就需要使用联合主键了,下面是使用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;

    }

   

}

 

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有