用户自定义ID Generator的例子

转载 2004年07月16日 10:10:00

PO

package com.dsii.hibernate.po; 
public class Company { 
   private String id; 
   private String name; 
   private String year; 
   public Company() { } 
   public String getId() { return id; } 
   public void setId(String id) { this.id = id; } 
   public String getName() { return name; } 
   public void setName(String name) { this.name = name; } 
   public String getYear() { return year; } 
   public void setYear(String year) { this.year = year; } 
} 

XML

<?xml version="1.0"?> uid_table next_hi_value_column C 

Customized Id Generator

package com.dsii.hibernate.po; 
import java.io.Serializable; 
import java.sql.SQLException; 
import java.util.Properties; 
import net.sf.hibernate.HibernateException; 
import net.sf.hibernate.dialect.Dialect; 
import net.sf.hibernate.engine.SessionImplementor; 
import net.sf.hibernate.type.Type; 
import net.sf.hibernate.util.PropertiesHelper; 
import org.apache.commons.logging.Log; 
import org.apache.commons.logging.LogFactory; 
import net.sf.hibernate.id.TableGenerator; 
public class CustomizedIdGenerator extends TableGenerator { 
   private String prefix; 
   private static final Log log = LogFactory.getLog(CustomizedIdGenerator.class); 
   public void configure(Type type, Properties params, Dialect d) { 
      super.configure(type, params, d); 
      prefix = params.getProperty("prefix") == null ? "Pre" : params.getProperty("prefix"); 
   } 
   public synchronized Serializable generate(SessionImplementor session, Object obj) throws SQLException, HibernateException { 
      Integer integer = (Integer)super.generate(session, obj); 
      return prefix+integer; } 
   } 

Bean

package com.dsii.hibernate.po; 
import net.sf.hibernate.*; 
import net.sf.hibernate.cfg.Configuration; 
import net.sf.hibernate.tool.hbm2ddl.SchemaExport; 
public class TestCompany { 
   private static SessionFactory _sessions = null; 
   static { 
      try { 
         Configuration cfg = new Configuration(); 
         cfg.addClass(Company.class); 
         SchemaExport dbExport = new SchemaExport(cfg); 
         dbExport.create(true, true); 
         _sessions = cfg.buildSessionFactory(); 
      } catch (MappingException e) { 
         e.printStackTrace(); 
      } catch (HibernateException e) { 
         e.printStackTrace(); 
      } 
   } 
public static void main(String[] args) throws HibernateException { 
   System.out.println("----------------begin"); 
   Company c1 = new Company(); 
   c1.setName("dsii"); 
   c1.setYear("2004");   
   Company c2 = new Company(); 
   c2.setName("dsii"); 
   c2.setYear("2004"); 
   Session session = _sessions.openSession(); 
   Transaction tx = null; 
   try { 
      tx = session.beginTransaction(); 
      session.save(c1); 
      session.save(c2); 
      tx.commit(); 
   } catch (HibernateException he) {
      if (tx != null) { tx.rollback(); } throw he; 
   } finally { session.close(); } 
   System.out.println("----------------end"); 
   } 
} 

Android自定义组合控件

【课程介绍】 开发工具:Android Studo ;如何自定义组合控件
  • 2016年11月13日 21:15

mybatis generator 自定义类名(修改mybatis-generator-1.3.2源码改dao类名)

网上找了一大堆的例子,感觉这个比较全,比较细,就是写的比较多,如果想看详细的,请看下面的链接,自动忽略我的: http://www.blogjava.net/bolo/archive/2015/03/...
  • dulinanaaa
  • dulinanaaa
  • 2016-09-06 10:44:27
  • 2643

IdGenerator

public class IdGenerator { private final static String SELECT_ALL_ID_INFO = "SELECT Name FROM IDGenI...
  • Anders_Zhuo
  • Anders_Zhuo
  • 2013-11-28 10:26:26
  • 3497

JPA注解之“@GeneratedValue”详解

一、JPA通用策略生成器  通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id, 其生成规则是由@GeneratedValue设定的。...
  • chenlong220192
  • chenlong220192
  • 2015-06-29 09:10:43
  • 5863

生成24位字符串ID__IdGenerator.java

生成24位字符串ID__IdGenerator.java此工具类用于生成24位字符串ID,唯一不重复。直接通过 IdGenerator.get() 获取。 源码如下:(点击下载源码 - IdGener...
  • tail_0701
  • tail_0701
  • 2018-02-26 08:54:48
  • 46

rapid-generator4.06 JAVA代码生成器配置,模板自定义

一: 需求      读取数据库表结构,通过对字段类型、名称等分析得到需要的各种变量,根据模板生成相应的pojo类、hibernate的xml配置文件、dao和service的接  口和类。 二: 配...
  • houfeng30920
  • houfeng30920
  • 2016-10-04 03:27:41
  • 4460

mybatis generator插件自定义修改

为了让前端工程师在swagger API文档中看到各个实体类属性的注释说明,而不用再去单独查看数据字典,同时解决在接收和返回日期格式的数据时需要手动对每个日期格式的字段添加相应注解的问题,修改myba...
  • xiachengwei
  • xiachengwei
  • 2017-08-08 09:22:13
  • 240

mybatis-generator自定义注释生成

mybatis-generator 生成自定义注释
  • qq_21251983
  • qq_21251983
  • 2016-02-24 15:45:23
  • 24878

Hibernate 和 JPA 注解方式自定义ID生成器

/** * Test.java * 实体类定义和配置 */ package com.saving.ecm.resource.entity; import javax.persistence....
  • u014042146
  • u014042146
  • 2016-09-20 14:23:48
  • 4059

Mybatis学习笔记九:自定义Generator Plugin

上一章中知道了如何使用Mybatis Generator Plugin自动生成Mapper、Model和相关配置文件。但是在实际使用情况中,可能会遇到不同的个性化需求,那么就需要Generator的自...
  • zsy3313422
  • zsy3313422
  • 2016-11-16 19:36:41
  • 9207
收藏助手
不良信息举报
您举报文章:用户自定义ID Generator的例子
举报原因:
原因补充:

(最多只允许输入30个字)