`
suhuanzheng7784877
  • 浏览: 704058 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Ff8d036b-05a9-33b5-828a-2633bb68b7e6
读金庸故事,品程序人生
浏览量:47744
社区版块
存档分类
最新评论

JPA学习笔记-EJB-03JPA主键生成策略总结--2

阅读更多

3:数据库序列Sequence

Oracle这种数据库支持序列生成主键的策略,那么就可以使用JPASequence作为主键的生成策略。代码如下:

    @Id

    @Column(name = "id")

    @GeneratedValue(strategy = GenerationType.SEQUENCE)

    public Integer getId() {

       return id;

    }

MySql暂时不支持序列这种主键策略,所以遇到MySql这种数据库的时候,不能使用SEQUENCE主键策略。

4Identity生成器

       有些数据库支持Identity字段作为生成器,MS SQL支持,主键创建Identity,实体标注如下:

    @Id

    @Column(name = "id")

    @GeneratedValue(strategy=GenerationType.IDENTITY)

    public Integer getId() {

       return id;

    }

 

单字段主键的问题,我们暂时先讨论这里,下面我们一起看看复合主键。

表结构如下图所示:

 

根据这个表对应生成的实体对下代码如下:

 

package eo;

 

import javax.persistence.Column;

import javax.persistence.Embeddable;

 

/**

 * TbStudentsId entity. @author MyEclipse Persistence Tools

 */

@Embeddable

public class TbStudentsId implements java.io.Serializable {

 

    // Fields

 

    private String name;

    private String no;

 

    // Constructors

 

    /** default constructor */

    public TbStudentsId() {

    }

 

    /** full constructor */

    public TbStudentsId(String name, String no) {

       this.name = name;

       this.no = no;

    }

 

    // Property accessors

 

    @Column(name = "name", nullable = false)

    public String getName() {

       return this.name;

    }

 

    public void setName(String name) {

       this.name = name;

    }

 

    @Column(name = "no", nullable = false)

    public String getNo() {

       return this.no;

    }

 

    public void setNo(String no) {

       this.no = no;

    }

 

    public boolean equals(Object other) {

       if ((this == other))

           return true;

       if ((other == null))

           return false;

       if (!(other instanceof TbStudentsId))

           return false;

       TbStudentsId castOther = (TbStudentsId) other;

 

       return ((this.getName() == castOther.getName()) || (this.getName() != null

              && castOther.getName() != null && this.getName().equals(

              castOther.getName())))

              && ((this.getNo() == castOther.getNo()) || (this.getNo() != null

                     && castOther.getNo() != null && this.getNo().equals(

                     castOther.getNo())));

    }

 

    public int hashCode() {

       int result = 17;

 

       result = 37 * result

              + (getName() == null ? 0 : this.getName().hashCode());

       result = 37 * result + (getNo() == null ? 0 : this.getNo().hashCode());

       return result;

    }

}

 

 

  • 大小: 28.8 KB
分享到:
评论

相关推荐

    JPA学习笔记-EJB-03JPA主键生成策略总结

    ### JPA主键生成策略详解 #### 一、概述 持久化对象的主键生成机制在JPA(Java Persistence API)中占据着重要的位置。它不仅关乎数据的唯一标识符如何确定,还与数据的存储效率及应用逻辑紧密相关。JPA通过`@...

    JPA学习笔记-EJB-04JPA关联映射总结

    在EJB(Enterprise JavaBeans)框架中,JPA被广泛使用,提供了一种面向对象的方式来处理数据库交互。本篇笔记主要聚焦于JPA的关联映射,这是JPA中一个重要的概念,用于定义实体之间的关系。 关联映射允许我们将...

    JPA学习笔记-EJB-02JPA属性注解

    ### JPA学习笔记-EJB-02JPA属性注解 #### 一、引言 在上一篇文章中,我们简要介绍了Java Persistence API (JPA)的基础知识,包括它的基本部署和操作流程,从而让我们对JPA有了初步的认识。本文将继续深入探讨JPA的...

    JPA学习笔记-EJB-05JPA实体对象状态和实体对象的高级操作

    ### JPA实体对象状态 #### 一、实体对象的状态分类 在Java Persistence API (JPA) 中,实体对象的状态管理是实现数据持久化的基础之一。根据实体对象与实体管理器(EntityManager)之间的交互关系,实体对象可以...

    JavaEE5学习笔记05-EJB之会话Bean总结

    ### JavaEE5学习笔记05-EJB之会话Bean总结 #### EJB(Enterprise JavaBeans)简介 EJB(Enterprise JavaBeans)是Java EE平台的一部分,用于开发和部署可重用的服务组件。EJB规范定义了如何编写、部署以及管理企业...

    JPA学习文档笔记

    ### JPA学习文档知识点概述 #### 1. JPA简介 - **定义**: JPA (Java Persistence API) 是由Sun官方提出的一种Java持久化规范,旨在简化Java应用程序中关系型数据库的操作过程。其核心目标是统一现有的ORM (Object-...

    jpa学习笔记

    ### JPA 学习笔记详解 #### 一、JPA 概述 Java Persistence API (JPA) 是 Sun 公司提出的一种 Java 持久层标准,它为 Java 开发者提供了一种对象关系映射 (ORM) 的工具来管理 Java 应用程序中的关系型数据。JPA ...

    spring 使用 Jpa的笔记

    总结来说,本文档涵盖了Spring JPA的基础配置和使用方法,包括所需的依赖库、持久化配置文件`persistence.xml`的编写、实体类的定义以及实体间关系的映射。通过这些知识点的学习,可以更好地理解和掌握Spring JPA的...

    ejb 学习笔记4

    ### EJB学习笔记4:深入理解实体与JPA #### 实体的概念与作用 实体,在企业级Java开发中,特别是EJB(Enterprise JavaBeans)框架下,指的是具有持久化能力的POJO(Plain Old Java Object)类。不同于实体Bean...

    ejb学习笔记

    在深入探讨《ejb学习笔记》这一主题之前,我们首先需要理解什么是EJB(Enterprise JavaBeans)。EJB是Java平台为企业级应用开发提供的一套组件模型,它属于J2EE(Java 2 Platform, Enterprise Edition)的一部分,...

    EJB3.0 - 学习笔记

    EJB 3.0 版本引入了许多改进,简化了API,降低了学习曲线,使其更易于使用。 在MVC(模型-视图-控制器)架构中,EJB 主要用于开发业务层。它负责处理数据和业务逻辑,而视图层则展示数据,控制器则协调视图和模型...

    EJB3.0 学习笔记

    **EJB3.0 学习笔记** EJB(Enterprise JavaBeans)是Java EE平台中的核心组件,用于构建可扩展的、安全的、事务处理的分布式应用程序。EJB3.0是EJB的一个重大更新,引入了许多改进,使得开发过程更为简化,降低了...

    学习EJB3基础知识笔记

    - `@GeneratedValue`: 控制主键生成策略,如自动递增或UUID生成。 3. **会话Bean(Session Beans)**: - `@Stateless`: 无状态会话Bean,适用于不保存客户端上下文的情况,服务器可以自由地复用和销毁实例。 - ...

    EJB学习笔记.doc

    【EJB学习笔记】 EJB,全称为Enterprise Java Beans,是Java平台上的一个标准,用于开发和部署服务器端的分布式组件。它基于Java语言,为创建高效能、安全且可扩展的企业级应用提供了框架。EJB规范由Java ...

    EJB学习笔记.rar

    从最初的EJB 1.0到EJB 2.x,再到EJB 3.0,其复杂性和学习曲线逐渐降低。EJB 3.0引入了注解,极大地简化了代码,并且与JPA、JSF等其他Java EE技术更好地集成。最新的EJB 3.2版本继续优化了API,提高了开发效率。 **...

Global site tag (gtag.js) - Google Analytics