`

Hibernate 自定义主键生成类

阅读更多
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();
	}

0
2
分享到:
评论

相关推荐

    Hibernate各种主键生成策略与配置详解

    关于Hibernate的各种主键生成策略与配置详解

    总结hibernate常用主键生成策略。

    1主键常用的生成策略 2对数据库的依赖性总结 3关于主键生成策略的选择 详细解释

    hibernate中自动生成主键的办法

    在Hibernate中,可以使用`<generator class="sequence">`来指定使用Sequence作为主键生成策略,并通过`<param name="sequence">SEQ_CHILD</param>`来指定具体的序列名称。这种方式适用于需要生成大量连续主键值的...

    hibernate主键生成策略

    ### Hibernate 主键生成策略详解 #### 一、概述 Hibernate 是一款开源的对象关系映射 (ORM) 框架,它极大地简化了 Java 应用程序与数据库之间的交互过程。在使用 Hibernate 进行持久化操作时,经常需要处理实体类...

    持久化类主键生成策略+例子

    在Java的持久化框架中,如JPA(Java Persistence API)和Hibernate,主键生成策略是数据模型设计的重要部分。主键通常是表中唯一标识记录的一列或一组列,用于确保数据的完整性和唯一性。本篇文章将深入探讨JPA的4种...

    Hibernate主键生成策略

    ### Hibernate主键生成策略 #### 一、概述 在Hibernate框架中,主键生成策略是对象持久化过程中不可或缺的一部分。合理的主键生成机制不仅能够确保数据的唯一性,还能够提高系统的性能和可扩展性。本文将详细介绍...

    JPA环境搭建及JPA实例与JPA主键生成策略

    这里的`@Id`注解标记`id`字段为实体的主键,而`@GeneratedValue`注解表示主键生成策略。`GenerationType.IDENTITY`意味着主键值由数据库自动生成,比如在MySQL中,这通常对应于`AUTO_INCREMENT`。 **JPA主键生成...

    真实项目中关于主键生成方式的剖析(JPA)

    而Hibernate提供了跨数据库的主键生成策略,例如`native`策略,它会根据底层数据库自动选择合适的主键生成方式(如MySQL的自动增长ID或Oracle的序列)。 在JPA中,通过`@GenericGenerator`注解可以定义主键的生成...

    Hibernate-tools解决hbm.xml中文注释乱码和生成实体类注释

    `Hibernate-tools`是Hibernate项目提供的一组实用工具,它包括了代码生成、反编译数据库模式到`hbm.xml`文件、JPA实体类生成等功能。在5.2.1版本中,这个工具集已经相当成熟,可以很好地支持各种定制需求。 1. **...

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

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

    hibernate 主键一对一映射(单向) 实例(java类)

    - 为了确保一对一关系的唯一性,通常其中一个实体的主键会作为另一个实体的外键,且两者的主键生成策略应保持一致。 - 考虑到性能,避免在查询时加载不必要的关联对象,可以使用懒加载(`fetch = FetchType.LAZY`)...

    用MyEclipse自动生成hibernate映射文件和实体类

    8. **主键配置**:在生成的`.hbm.xml`映射文件中,需要对主键生成策略进行调整。默认情况下,Hibernate可能会选择自动增长策略,但根据实际需求,可能需要使用`assigned`策略,即主键由应用逻辑生成,例如使用序列或...

    Hibernate 映射文件自动生成

    【压缩包子文件的文件名称列表】:“hibernate映射文件自动生成.doc”很可能是这篇博文的文档形式,其中详细介绍了具体的操作步骤、使用工具或者自定义脚本,以帮助开发者理解并应用自动化的映射文件生成过程。...

    hibernate 配置文件 生成工具

    1.采用freeMarker模板来生成代码,真正实现了自定义代码模板; 2.理论上可以生成任何语言的任何所需要的模板; 3.更改了内部逆向工程的实现方式,提高效率和稳定性; 4.修正了主键ID读取不正确的问题; 5.修正了生成...

    IDEA表生成实体类注解,配使用步骤说明

    每个实体类对应数据库中的一个表,表的字段会被映射为类的属性,并带有相应的注解,如`@Entity`表示这是一个实体类,`@Table`表示对应数据库表,`@Id`表示主键,`@GeneratedValue`表示主键生成策略,`@Column`表示列...

    Hibernate3自动生成entity

    例如,可以通过@Entity注解标记实体类,@Id注解标识主键,@GeneratedValue注解自动生成主键,@ManyToOne或@OneToMany注解处理一对多或多对一的关系。 通过以上步骤,我们成功地在MyEclipse中利用Hibernate3自动生成...

    Hibernate关系映射XML生成工具

    这些工具能够自动生成Hibernate所需的配置文件,包括映射文件(.hbm.xml),这些文件定义了Java类和数据库表之间的映射关系。 Middlegen是早期流行的一款Hibernate工具,它可以自动从数据库模式生成Hibernate的XML...

    hibernate自动生成

    自动生成的Entity类通常包含属性(对应表的字段)和getter/setter方法,有时还会包含一些特定的Hibernate注解,如@Id(主键)和@GeneratedValue(主键生成策略)。 2. **映射文件(Mapping Files)**:在传统的...

Global site tag (gtag.js) - Google Analytics