`
dellsoft
  • 浏览: 112860 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

hibernate custom generator

阅读更多
public class CustomIdSequenceGenerator extends org.hibernate.id.SequenceGenerator{
  
    private DecimalFormat format;
    public void configure(Type type, Properties params, Dialect dialect) {
        super.configure( type,  params,  dialect);
     
        String formatPattern = params.getProperty("format");
        if(formatPattern!=null)
            format=new DecimalFormat(formatPattern);
    }
    public synchronized Serializable generate(SessionImplementor session, Object object)
		throws HibernateException {
        Serializable generated = super.generate(session, object);
        String v=null;
        if(generated instanceof String)
            generated=Long.parseLong((String)generated);
        if(generated instanceof Number){
            if(format!=null)
                v=format.format(generated);
            else
                v=String.valueOf(generated);
        }else
            v=(String) generated;
      
        return v;
	}

}
自定义 TableGenerator

 

public class CustomIdTableGenerator extends org.hibernate.id.TableGenerator{
  
    private DecimalFormat format;
    public void configure(Type type, Properties params, Dialect dialect) {
        super.configure( type,  params,  dialect);
     
        String formatPattern = params.getProperty("format");
        if(formatPattern!=null)
            format=new DecimalFormat(formatPattern);
    }
    public synchronized Serializable generate(SessionImplementor session, Object object)
		throws HibernateException {
        Serializable generated = super.generate(session, object);
        String v=null;
        if(generated instanceof String)
            generated=Long.parseLong((String)generated);
        if(generated instanceof Number){
            if(format!=null)
                v=format.format(generated);
            else
                v=String.valueOf(generated);
        }else
            v=(String) generated;
      
        return v;
	}

}
hibernate xml
  parameters = {
            @Parameter(name = "format", value = "CK0000000")
        }

  

分享到:
评论

相关推荐

    Hibernate的generator属性

    在 Hibernate 中,`generator` 属性是用于指定如何生成实体类的唯一标识(通常为主键)的一种机制。这个属性可以配置在 `hibernate.hbm.xml` 文件中的 `<id>` 标签内,它允许你选择不同的策略来生成 ID。 1. **...

    hibernate_code_generator.rar

    《使用Hibernate Code Generator提高开发效率》 在Java J2EE开发中,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作。然而,手动编写与数据库表对应的Java实体类、Hibernate的.hbm映射...

    Laravel开发-custom-generator

    `Laravel开发-custom-generator`项目旨在为存储库模式的应用程序提供定制化的代码生成工具,帮助开发者快速构建新功能,减少手动编写重复代码的时间。 ### 1. Laravel概述 Laravel是一个基于PHP的开源Web应用框架,...

    hibernate中的generator的生成方式hibernate中的generator的生成方式

    ### Hibernate中的Generator生成方式详解 在Hibernate框架中,对象与关系映射(ORM)是其核心功能之一,它能够将面向对象模型中的类与数据库表建立对应关系,从而实现对象和数据库之间的转换。而在持久化对象的过程...

    Hibernate映射文件id的generator配置方法

    Hibernate 映射文件 id 的 generator 配置方法 Hibernate 映射文件 id 的 generator 配置方法是 Hibernate 框架中的一种重要配置,用于生成持久化类实例的唯一标识符。下面将对 Hibernate 映射文件 id 的 generator...

    Hibernate Pojo Generator-开源

    Hibernate Pojo Generator生成通过Hibernate Annotations(+ Spring)访问数据库所需的所有Java代码,包括JUnit测试(每个表1个),这些测试可以立即运行而无需进一步定制。 大部分使用MySQL进行测试。 移至GitHub:...

    hibernate tools源码运行或修改需要的jar

    Hibernate Tools 是一个强大的开发工具,它为Hibernate ORM框架提供了丰富的集成开发环境支持,包括逆向工程(从数据库生成实体类)、代码生成、JPA支持以及HQL和SQL查询的调试等。要运行或修改Hibernate Tools的...

    Hibernate完整使用教程

    generator 是 Hibernate 中的一种生成器,用于生成唯一的标识符。generator 可以通过 Java 类或 XML 文件来定义。 composite-id composite-id 是 Hibernate 中的一种复合标识符,用于标识对象模型的唯一性。...

    HibernateTools-3.2.4

    2. **代码生成器(Code Generator)**:提供了一种方式来自动创建基于Hibernate的持久层代码,包括实体类、映射文件、DAO和Service层代码。 3. **HQL和SQL查询编辑器**:提供了集成的HQL(Hibernate Query Language...

    hibernate的dtd 包含hibernate.properties

    <generator class="increment"/> </hibernate-mapping> ``` 在这个例子中,`<class>`元素代表一个Java类,`<id>`和`<property>`元素则分别表示主键和普通属性,它们都映射到了数据库表的相应列。 总结...

    Hibernate tool 源代码

    《深入探索Hibernate Tool源代码:Eclipse Plugin与Code Generator解析》 Hibernate Tool是Java开发者们常用的工具,它基于Hibernate框架,提供了丰富的功能,包括数据库逆向工程、对象关系映射(ORM)代码自动生成...

    hibernate配置文件详解

    <generator class="native" /> <!-- 一对多关联关系 --> <one-to-many class="com.Hibernate.City" /> </hibernate-mapping> ``` 在该文件中,我们可以看到有多个关键的配置项: * `class`:定义...

    Msc-generator使用手册

    Msc-generator是一款用于从文本描述中绘制各种图表的工具,它的版本为6.1.0,更新于2017年11月3日。这款工具可以生成多种类型的图表,包括信号图、流程图、块图等,每种图表都有其特定的用途和特点。为了更好地理解...

    Hibernate主键生成方式

    2. **Increment方式**:`<generator class="increment"/>` 这种方式由Hibernate自己管理主键的递增,而不是依赖数据库。它维护一个全局计数器,每次保存新实体时,计数器加一并作为主键值。但是,这种方式在多线程或...

    hibernate 重点知识原创

    <generator class="native"/> </hibernate-mapping> ``` 七、表与表的关系 Hibernate 支持多种数据库表之间的关系映射,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多...

    Hibernate+IDEA 2018 一个hibernate程序

    <generator class="increment"/> ``` #### 单元测试 为了确保代码质量,还需要编写单元测试。使用JUnit框架可以方便地进行单元测试。 **HibernateTest.java** ```java import org.hibernate.Session; ...

    HibernateCore的代码生成、逆向工程、ant任务和更多工具___下载.zip

    例如,`hibernate-generator`任务可以用于生成Java实体类,而`hibernate-reverse-engineering`任务则用于进行逆向工程。 4. **更多工具**: 除了上述核心功能,Hibernate Tools 还包含了一些附加工具,如HQL...

    mybatis-generator-core-1.3.7-API文档-中文版.zip

    赠送jar包:mybatis-generator-core-1.3.7.jar; 赠送原API文档:mybatis-generator-core-1.3.7-javadoc.jar; 赠送源代码:mybatis-generator-core-1.3.7-sources.jar; 赠送Maven依赖信息文件:mybatis-generator-...

    Hibernate快速入门教程

    【Hibernate快速入门教程】 在Java开发中,Hibernate是一个非常重要的框架,它实现了对象关系映射(ORM)技术,使得开发者可以使用面向对象的方式来操作数据库,极大地简化了数据访问层的编程工作。本教程针对初学...

Global site tag (gtag.js) - Google Analytics