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;
}
}
分享到:
相关推荐
这里,`strategy = GenerationType.TABLE` 指定了使用`@TableGenerator` 来生成ID。`generator = "MyTableGen"` 引用了我们在前面定义的生成器。 通过这种方式,`@TableGenerator` 提供了一种灵活的策略来处理主键...
在这个例子中,我们添加了一个`Long`类型的`id`字段,并用`@GeneratedValue`和`@TableGenerator`注解来配置自动生成的策略。请注意,这仅适用于复合主键中包含自增部分的情况。 最后,确保在Hibernate配置文件(如`...
在Java持久化框架Hibernate中,`GenerationType.TABLE`是一种实体属性生成策略,它主要用于数据库主键的生成。这种策略在多线程环境下尤其有用,因为它提供了更好的并发性和可伸缩性。当我们创建一个实体类,并且...
在实际开发过程中,通常会使用Hibernate来实现JPA接口,因此,Hibernate成为了JPA的实际实现者。 #### 三、Hibernate注解详解 ##### 1. @Entity 注解 `@Entity` 注解用于标记一个类作为实体类,表示该类可以映射...
3. @Id:标识实体的主键字段,可以结合@GeneratedValue使用来自动生成主键。 4. @Column:定义实体字段如何映射到数据库表的列,可以设置列名、长度、是否允许为空等属性。 5. @OneToMany、@ManyToOne、@OneToOne...
3. **主键生成策略(Id Generator)**:Hibernate提供多种主键生成策略,例如@TableGenerator、@SequenceGenerator或@IdClass。在实例中,你会看到如何设置主键生成策略,确保数据的唯一性。 4. **映射文件(.hbm....
- **实体类注解**: 使用@Entity定义实体类,@Table指定对应的数据库表,@Id标识主键。 **3. 数据持久化** - **持久化类**: 实体类,代表数据库表的一行记录。 - **持久化状态**: 实例可以处于瞬时态、托管态和持久...
2. ID生成策略:Hibernate支持多种主键生成策略,如@TableGenerator、@GeneratedValue等,可自定义或使用内置策略。 三、事务管理 1. Transaction接口:负责处理数据库事务,包括开始、提交、回滚事务。在Session...
《Hibernate注解3.4.0.GA中文版》是一个针对Java开发人员的重要参考资料,它详细阐述了如何在Hibernate框架中使用注解进行对象关系映射(ORM)。Hibernate是Java领域广泛使用的持久化框架,通过将Java类与数据库表...
5. @TableGenerator:非JPA标准,但提供了更灵活的主键生成策略。 四、实体生命周期管理 1. @PrePersist:在对象持久化前调用的方法。 2. @PostPersist:在对象成功持久化后调用的方法。 3. @PreUpdate:在对象...
这种方式相对独立于数据库类型,适合需要跨库生成唯一ID的场景。该策略通过`@TableGenerator`注解来配置生成器的细节。 - **示例代码**: ```java @Id @GeneratedValue(strategy = GenerationType.TABLE, ...
- `GenerationType.TABLE` - 使用特定的数据库表来生成主键,配合`@TableGenerator`使用。 3. `@Column` - 这个注解将属性映射到数据库表的列,并可以覆盖默认的列定义。它包含一些可选属性,如`name`(列名)、`...
- **指定主键生成策略**:如 `@SequenceGenerator` 或 `@TableGenerator`。 - **继承关系映射** - **每个类一张表**:使用 `@Inheritance(strategy = InheritanceType.SINGLE_TABLE)`。 - **每个类层次结构一张表...
通过`@TableGenerator`可以自定义主键生成表,包括表名、主键列名和值列名。 以上就是Hibernate与JPA的基础知识,它们通过注解驱动的编程模型,极大地简化了Java应用与数据库的交互,降低了开发复杂性,提高了代码...
`@TableGenerator`和`@GeneratedValue(strategy = GenerationType.TABLE)`组合使用,当需要自定义主键生成策略时,如基于表的生成器。 最后,`@Override`注解用于确保重写的方法是来自父类的,这在实现持久化接口时...
6. **标识符生成策略**:Hibernate提供了多种主键生成策略,如@TableGenerator、@SequenceGenerator、@GeneratedValue(IDENTITY、AUTO、SEQUENCE、TABLE),其中.AUTO策略依赖于数据库的自动增长功能,可能不适合...
3. **ID生成策略**:Hibernate提供了多种ID生成策略,如@TableGenerator、@GeneratedValue等,用于自动为新记录生成唯一标识符。 4. **Session接口**:它是Hibernate的主要工作单元,用于在应用程序和数据库之间...
2. **ID生成策略**: Hibernate提供了多种主键生成策略,如@TableGenerator、@GeneratedValue等。 3. **字段映射**: 使用@Column、@Id等注解将实体类的属性映射到数据库的列。 4. **关联映射**: 通过@OneToOne、@...
2. ID生成策略:Hibernate提供多种主键生成策略,如@TableGenerator、@SequenceGenerator、@GeneratedValue等,可以根据数据库类型选择合适的策略。 3. CRUD操作:通过Session的save()、update()、delete()和get()...
如果需要复合主键,可以使用@EmbeddedId或@TableGenerator。 5. **映射文件(Mapping File)**: Hibernate支持XML映射文件(.hbm.xml)和注解两种方式来定义对象关系映射。XML文件提供更细粒度的控制,而注解则更加...