`

Hibernate 用@TableGenerator 生成Id

 
阅读更多

package com.bjsxt.hibernate;

import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.SequenceGenerator;
import javax.persistence.TableGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

//本例有两个Generator
@Entity
@TableGenerator(
        name="Teacher_GEN",
        table="GENERATOR_TABLE",   
        pkColumnName = "pk_key",
        valueColumnName = "pk_value",
        pkColumnValue="Teacher",//从pk_key=Teacher的pk_value
        allocationSize=1//每一次拿出就出加多少
    )
/**
 *
 * 表: GENERATOR_TABLE
 *  pk_key            pk_value
 *  Teacher           1
 */
public class Teacher {
    private int id;
    private String name;
    private String title;

 
    @Id
    @GeneratedValue(strategy=GenerationType.TABLE, generator="Teacher_GEN")
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
   
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
   
}

分享到:
评论

相关推荐

    表生成器 @TableGenerator

    这里,`strategy = GenerationType.TABLE` 指定了使用`@TableGenerator` 来生成ID。`generator = "MyTableGen"` 引用了我们在前面定义的生成器。 通过这种方式,`@TableGenerator` 提供了一种灵活的策略来处理主键...

    hibernate复合主键映射

    在这个例子中,我们添加了一个`Long`类型的`id`字段,并用`@GeneratedValue`和`@TableGenerator`注解来配置自动生成的策略。请注意,这仅适用于复合主键中包含自增部分的情况。 最后,确保在Hibernate配置文件(如`...

    GenerationType.TABLE生成策略

    在Java持久化框架Hibernate中,`GenerationType.TABLE`是一种实体属性生成策略,它主要用于数据库主键的生成。这种策略在多线程环境下尤其有用,因为它提供了更好的并发性和可伸缩性。当我们创建一个实体类,并且...

    hibernate注解学习笔记

    在实际开发过程中,通常会使用Hibernate来实现JPA接口,因此,Hibernate成为了JPA的实际实现者。 #### 三、Hibernate注解详解 ##### 1. @Entity 注解 `@Entity` 注解用于标记一个类作为实体类,表示该类可以映射...

    hibernate-annotations-3.3.0.GA

    3. @Id:标识实体的主键字段,可以结合@GeneratedValue使用来自动生成主键。 4. @Column:定义实体字段如何映射到数据库表的列,可以设置列名、长度、是否允许为空等属性。 5. @OneToMany、@ManyToOne、@OneToOne...

    hibernate框架实例

    3. **主键生成策略(Id Generator)**:Hibernate提供多种主键生成策略,例如@TableGenerator、@SequenceGenerator或@IdClass。在实例中,你会看到如何设置主键生成策略,确保数据的唯一性。 4. **映射文件(.hbm....

    Hibernate面试题专栏 - 最全的Hibernate面试题, Hibernate笔试题, Hibernate问题

    - **实体类注解**: 使用@Entity定义实体类,@Table指定对应的数据库表,@Id标识主键。 **3. 数据持久化** - **持久化类**: 实体类,代表数据库表的一行记录。 - **持久化状态**: 实例可以处于瞬时态、托管态和持久...

    hibernate-3.1.2API.rar

    2. ID生成策略:Hibernate支持多种主键生成策略,如@TableGenerator、@GeneratedValue等,可自定义或使用内置策略。 三、事务管理 1. Transaction接口:负责处理数据库事务,包括开始、提交、回滚事务。在Session...

    hibernate-annotations-3.4.0.GA.chm中文版

    《Hibernate注解3.4.0.GA中文版》是一个针对Java开发人员的重要参考资料,它详细阐述了如何在Hibernate框架中使用注解进行对象关系映射(ORM)。Hibernate是Java领域广泛使用的持久化框架,通过将Java类与数据库表...

    hibernate-annotations-3.2.1.GA.zip

    5. @TableGenerator:非JPA标准,但提供了更灵活的主键生成策略。 四、实体生命周期管理 1. @PrePersist:在对象持久化前调用的方法。 2. @PostPersist:在对象成功持久化后调用的方法。 3. @PreUpdate:在对象...

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

    这种方式相对独立于数据库类型,适合需要跨库生成唯一ID的场景。该策略通过`@TableGenerator`注解来配置生成器的细节。 - **示例代码**: ```java @Id @GeneratedValue(strategy = GenerationType.TABLE, ...

    hibernate属性级别注解实例代码

    - `GenerationType.TABLE` - 使用特定的数据库表来生成主键,配合`@TableGenerator`使用。 3. `@Column` - 这个注解将属性映射到数据库表的列,并可以覆盖默认的列定义。它包含一些可选属性,如`name`(列名)、`...

    hibernate-annotations_中文帮助文档

    - **指定主键生成策略**:如 `@SequenceGenerator` 或 `@TableGenerator`。 - **继承关系映射** - **每个类一张表**:使用 `@Inheritance(strategy = InheritanceType.SINGLE_TABLE)`。 - **每个类层次结构一张表...

    03_Hibernate&JPA .pptx

    通过`@TableGenerator`可以自定义主键生成表,包括表名、主键列名和值列名。 以上就是Hibernate与JPA的基础知识,它们通过注解驱动的编程模型,极大地简化了Java应用与数据库的交互,降低了开发复杂性,提高了代码...

    HIbernate注解详解(二)

    `@TableGenerator`和`@GeneratedValue(strategy = GenerationType.TABLE)`组合使用,当需要自定义主键生成策略时,如基于表的生成器。 最后,`@Override`注解用于确保重写的方法是来自父类的,这在实现持久化接口时...

    hibernate简单总结

    6. **标识符生成策略**:Hibernate提供了多种主键生成策略,如@TableGenerator、@SequenceGenerator、@GeneratedValue(IDENTITY、AUTO、SEQUENCE、TABLE),其中.AUTO策略依赖于数据库的自动增长功能,可能不适合...

    hibernate-release-5.0.7.Final资源包

    3. **ID生成策略**:Hibernate提供了多种ID生成策略,如@TableGenerator、@GeneratedValue等,用于自动为新记录生成唯一标识符。 4. **Session接口**:它是Hibernate的主要工作单元,用于在应用程序和数据库之间...

    hibernate学习教程

    2. **ID生成策略**: Hibernate提供了多种主键生成策略,如@TableGenerator、@GeneratedValue等。 3. **字段映射**: 使用@Column、@Id等注解将实体类的属性映射到数据库的列。 4. **关联映射**: 通过@OneToOne、@...

    Hibernate3.2API

    2. ID生成策略:Hibernate提供多种主键生成策略,如@TableGenerator、@SequenceGenerator、@GeneratedValue等,可以根据数据库类型选择合适的策略。 3. CRUD操作:通过Session的save()、update()、delete()和get()...

    hibernate中文参考文档

    如果需要复合主键,可以使用@EmbeddedId或@TableGenerator。 5. **映射文件(Mapping File)**: Hibernate支持XML映射文件(.hbm.xml)和注解两种方式来定义对象关系映射。XML文件提供更细粒度的控制,而注解则更加...

Global site tag (gtag.js) - Google Analytics