`
bjtdeyx
  • 浏览: 169399 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

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;

    }

   

}

分享到:
评论

相关推荐

    JPA中的联合主键

    在本篇文章中,我们将深入探讨JPA中的联合主键实现,以及如何在实际项目中使用它。 首先,让我们理解联合主键的基本概念。在关系数据库中,主键是用来唯一标识表中每一行记录的字段或字段组合。在JPA中,我们可以...

    15_传智播客JPA详解_JPA中的联合主键

    在JPA中,我们可以使用`@IdClass`或`@EmbeddedId`注解来实现联合主键。 1. **@IdClass注解**:当你需要创建一个单独的类来表示联合主键时,可以使用@IdClass。例如,假设我们有一个`Student`实体和一个`Course`实体...

    JPA_5_联合主键

    本篇文章将深入探讨JPA中的联合主键概念、实现方式以及其在实际应用中的使用场景。 ### JPA 基本概念 JPA 是一种Java规范,它提供了一种标准的方式来管理和持久化Java对象到关系数据库。通过使用JPA,开发者可以...

    JPA 联合主键

    本文将深入探讨JPA中的联合主键概念、实现方式以及实际应用。 ### 1. 联合主键的概念 联合主键是指在数据库表中,通过两个或多个字段的组合来共同构成主键,以确保数据的唯一性。这种设计模式常用于那些单个字段...

    15_JPA详解_JPA中的联合主键.zip

    2. **使用`@EmbeddedId`和`@Embeddable`注解**:如果联合主键的属性都属于同一个实体,你可以将这些属性嵌入到实体类内部,并使用`@Embeddable`注解这个嵌入类。然后在实体类上使用`@EmbeddedId`注解,指定这个嵌入...

    java hibernate使用注解来定义联合主键

    本文将详细介绍如何使用Hibernate注解来定义联合主键。 首先,我们需要了解联合主键的定义方式。在Hibernate API中,有三种方法来定义联合主键: 1. 使用`@Embeddable`注解定义一个独立的主键类,然后将这个类的...

    JPA联合主键

    在JPA中,我们可以使用`@IdClass`或`@EmbeddedId`注解来处理联合主键。这两种方法有其不同的应用场景和优缺点。 1. **使用@IdClass** `@IdClass`注解允许我们创建一个独立的类(通常是`KeyClass`)来表示联合主键...

    Toplink_JPA注解参考

    联合主键注解 (@EmbeddedId)** 对于复合主键,可以使用@EmbeddedId注解配合一个嵌入式类来表示。例如: ```java @Embeddable public class OrderId { private String orderId; private int customerId; } @...

    JPA学习总结(五)--JPACompositePK联合主键

    在JPA中,我们可以使用`@IdClass`或`@EmbeddedId`注解来实现联合主键。 1. **@IdClass**:这种方式需要创建一个单独的类来表示联合主键,这个类需要实现Serializable接口,并且每个主键字段都用@Id注解标识。然后在...

    Spring Data JPA 建立表的联合主键

    在 Spring Data JPA 中,建立表的联合主键是一种常见的需求,本文将详细介绍如何使用 Spring Data JPA 建立表的联合主键,并提供了两种实现方式。 首先,我们需要了解什么是联合主键。在关系数据库中,主键是用于...

    使用@IdClass创建联合主键,并实现外部关联

    在 Java Persistence API(JPA)中,联合主键是指由多个字段组成的主键,可以使用@IdClass注解来实现。在本文中,我们将介绍如何使用@IdClass创建联合主键,并实现外部关联。 首先,我们需要创建三个实体类:...

    java程序使用JPA注解详解.zip

    本资料主要探讨Java程序中如何有效利用JPA注解进行数据库交互。 在Java程序中,JPA注解通常应用于实体类(Entity)及其属性上,这些注解定义了实体与数据库表之间的关系。例如,`@Entity`注解标记一个类为数据库表...

    JPA规范注解的javax.persistence包

    JPA规范的注解主要集中在`javax.persistence`包中,这些注解用于标注实体类、属性、关系等,使得ORM(对象关系映射)过程更加便捷。 在`javax.persistence`包中,有几个核心的注解,包括但不限于: 1. `@Entity`:...

    传智播客JPA学习笔记.pdf

    联合主键使用@EmbeddedId和@Embeddable注解,将多个字段组合成一个复合主键,适用于那些不满足单一主键条件的表。 以上就是JPA学习笔记中的关键知识点,涵盖了JPA的基本概念、环境配置、对象关系映射、查询语言、...

    JPA标签(注解)详细说明

    - 在JPA中,实体类可以继承,通过`@Inheritance`注解可以定义继承策略,如单表继承(SINGLE_TABLE)、联合继承(JOINED)和子类表继承(TABLE_PER_CLASS)。 以上就是JPA中常用的一些注解及其功能,它们极大地简化...

    jpa 全面学习资料

    JPA注解是实现ORM的关键,例如: - **@Table**: 指定实体对应的数据库表名。 - **@Column**: 定义列名、长度、是否可为空等属性。 - **@GeneratedValue**: 控制主键生成策略,如自动增长、序列等。 - **@Temporal**:...

    自己整理的JPA帮助文档

    JPA注解** - `@Entity`: 标记一个类为JPA实体。 - `@Table`: 定义实体映射到哪个数据库表。 - `@Id`: 标识主键字段。 - `@GeneratedValue`: 控制主键的生成策略,如自增、UUID等。 - `@Column`: 映射属性到数据库列...

    JPA讲解视频

    8. **继承映射(Inheritance Mapping)**:JPA支持单表继承、联合继承和表格分层等策略,使你可以设计复杂的对象模型。 9. **懒加载(Lazy Loading)**:默认情况下,JPA实现如Hibernate支持懒加载,即关联的对象只...

Global site tag (gtag.js) - Google Analytics