KeyGen类
用于生成 形如 yyyyMMDD+序号形式的主键
package keyGen;
public class OrderKeyGen implements IdentifierGenerator {
private static SimpleDateFormat preFix = new SimpleDateFormat("yyyyMMdd");
@Override
public synchronized Serializable generate(SessionImplementor arg0,
Object arg1) throws HibernateException {
String datePart = preFix.format(new Date());
String idString = datePart + System.currentTimeMillis() % 99;
return idString;
}
}
POJO类定义
package db;
@Entity
@Table(name = "t_diykey", catalog = "test")
public class TDiykey implements java.io.Serializable {
// Fields
private String dbid;
private String notes;
// Constructors
/** default constructor */
public TDiykey() {
}
/** full constructor */
public TDiykey(String notes) {
this.notes = notes;
}
// Property accessors
@GenericGenerator(name = "generator", strategy = "keyGen.OrderKeyGen")
@Id
@GeneratedValue(generator = "generator")
@Column(name = "dbid", unique = true, nullable = false, length = 10)
public String getDbid() {
return this.dbid;
}
public void setDbid(String dbid) {
this.dbid = dbid;
}
@Column(name = "notes", length = 20)
public String getNotes() {
return this.notes;
}
public void setNotes(String notes) {
this.notes = notes;
}
}
测试类
public class MyDIYKeyTest {
public static void main(String[] args) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
TDiykey tDiykey = new TDiykey();
tDiykey.setNotes("aaaa");
session.save(tDiykey);
tx.commit();
HibernateSessionFactory.closeSession();
}
分享到:
相关推荐
关于Hibernate的各种主键生成策略与配置详解
1主键常用的生成策略 2对数据库的依赖性总结 3关于主键生成策略的选择 详细解释
在Hibernate中,可以使用`<generator class="sequence">`来指定使用Sequence作为主键生成策略,并通过`<param name="sequence">SEQ_CHILD</param>`来指定具体的序列名称。这种方式适用于需要生成大量连续主键值的...
### Hibernate 主键生成策略详解 #### 一、概述 Hibernate 是一款开源的对象关系映射 (ORM) 框架,它极大地简化了 Java 应用程序与数据库之间的交互过程。在使用 Hibernate 进行持久化操作时,经常需要处理实体类...
在Java的持久化框架中,如JPA(Java Persistence API)和Hibernate,主键生成策略是数据模型设计的重要部分。主键通常是表中唯一标识记录的一列或一组列,用于确保数据的完整性和唯一性。本篇文章将深入探讨JPA的4种...
### Hibernate主键生成策略 #### 一、概述 在Hibernate框架中,主键生成策略是对象持久化过程中不可或缺的一部分。合理的主键生成机制不仅能够确保数据的唯一性,还能够提高系统的性能和可扩展性。本文将详细介绍...
这里的`@Id`注解标记`id`字段为实体的主键,而`@GeneratedValue`注解表示主键生成策略。`GenerationType.IDENTITY`意味着主键值由数据库自动生成,比如在MySQL中,这通常对应于`AUTO_INCREMENT`。 **JPA主键生成...
而Hibernate提供了跨数据库的主键生成策略,例如`native`策略,它会根据底层数据库自动选择合适的主键生成方式(如MySQL的自动增长ID或Oracle的序列)。 在JPA中,通过`@GenericGenerator`注解可以定义主键的生成...
`Hibernate-tools`是Hibernate项目提供的一组实用工具,它包括了代码生成、反编译数据库模式到`hbm.xml`文件、JPA实体类生成等功能。在5.2.1版本中,这个工具集已经相当成熟,可以很好地支持各种定制需求。 1. **...
### JPA主键生成策略详解 #### 一、概述 持久化对象的主键生成机制在JPA(Java Persistence API)中占据着重要的位置。它不仅关乎数据的唯一标识符如何确定,还与数据的存储效率及应用逻辑紧密相关。JPA通过`@...
- 为了确保一对一关系的唯一性,通常其中一个实体的主键会作为另一个实体的外键,且两者的主键生成策略应保持一致。 - 考虑到性能,避免在查询时加载不必要的关联对象,可以使用懒加载(`fetch = FetchType.LAZY`)...
8. **主键配置**:在生成的`.hbm.xml`映射文件中,需要对主键生成策略进行调整。默认情况下,Hibernate可能会选择自动增长策略,但根据实际需求,可能需要使用`assigned`策略,即主键由应用逻辑生成,例如使用序列或...
【压缩包子文件的文件名称列表】:“hibernate映射文件自动生成.doc”很可能是这篇博文的文档形式,其中详细介绍了具体的操作步骤、使用工具或者自定义脚本,以帮助开发者理解并应用自动化的映射文件生成过程。...
1.采用freeMarker模板来生成代码,真正实现了自定义代码模板; 2.理论上可以生成任何语言的任何所需要的模板; 3.更改了内部逆向工程的实现方式,提高效率和稳定性; 4.修正了主键ID读取不正确的问题; 5.修正了生成...
每个实体类对应数据库中的一个表,表的字段会被映射为类的属性,并带有相应的注解,如`@Entity`表示这是一个实体类,`@Table`表示对应数据库表,`@Id`表示主键,`@GeneratedValue`表示主键生成策略,`@Column`表示列...
例如,可以通过@Entity注解标记实体类,@Id注解标识主键,@GeneratedValue注解自动生成主键,@ManyToOne或@OneToMany注解处理一对多或多对一的关系。 通过以上步骤,我们成功地在MyEclipse中利用Hibernate3自动生成...
这些工具能够自动生成Hibernate所需的配置文件,包括映射文件(.hbm.xml),这些文件定义了Java类和数据库表之间的映射关系。 Middlegen是早期流行的一款Hibernate工具,它可以自动从数据库模式生成Hibernate的XML...
自动生成的Entity类通常包含属性(对应表的字段)和getter/setter方法,有时还会包含一些特定的Hibernate注解,如@Id(主键)和@GeneratedValue(主键生成策略)。 2. **映射文件(Mapping Files)**:在传统的...