hibernate自定义主键生成策略2---关于Configurable接口继承和PersistentIdentifierGenerator常量的测试
2015-08-03 18:27
531 查看
hibernate自定义主键生成策略:http://blog.csdn.net/ieayoio/article/details/47259833
添加数据输出
CATALOG---null
IDENTIFIER_NORMALIZER---null
PK---id
SCHEMA---null
TABLE---t_info
TABLES---t_info
ENTITY_NAME---cn.silvernet.model.Info
JPA_ENTITY_NAME---Info
---------------------------------------
CATALOG---null
IDENTIFIER_NORMALIZER---null
PK---id
SCHEMA---null
TABLE---t_info
TABLES---t_info
ENTITY_NAME---cn.silvernet.model.Info
JPA_ENTITY_NAME---Info
---------------------------------------
Hibernate: insert into t_info (date, type, title, content, id) values (?, ?, ?, ?, ?)
package cn.silvernet.util; import java.io.Serializable; import java.util.Properties; import java.util.UUID; import org.hibernate.HibernateException; import org.hibernate.MappingException; import org.hibernate.dialect.Dialect; import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.id.Configurable; import org.hibernate.id.IdentifierGenerator; import org.hibernate.id.PersistentIdentifierGenerator; import org.hibernate.type.Type; public class KeyUtils implements IdentifierGenerator,Configurable { public String classname; @Override public Serializable generate(SessionImplementor arg0, Object arg1) throws HibernateException { // TODO Auto-generated method stub return classname+"--"+UUID.randomUUID();//返回自定义生成的主键 } @Override public void configure(Type arg0, Properties arg1, Dialect arg2) throws MappingException { System.out.println("CATALOG---"+arg1.getProperty(PersistentIdentifierGenerator.CATALOG)); System.out.println("IDENTIFIER_NORMALIZER---"+arg1.getProperty(PersistentIdentifierGenerator.IDENTIFIER_NORMALIZER)); System.out.println("PK---"+arg1.getProperty(PersistentIdentifierGenerator.PK)); System.out.println("SCHEMA---"+arg1.getProperty(PersistentIdentifierGenerator.SCHEMA)); System.out.println("TABLE---"+arg1.getProperty(PersistentIdentifierGenerator.TABLE)); System.out.println("TABLES---"+arg1.getProperty(PersistentIdentifierGenerator.TABLES)); System.out.println("ENTITY_NAME---"+arg1.getProperty(PersistentIdentifierGenerator.ENTITY_NAME)); System.out.println("JPA_ENTITY_NAME---"+arg1.getProperty(PersistentIdentifierGenerator.JPA_ENTITY_NAME)); System.out.println("---------------------------------------"); this.classname = arg1.getProperty("id"); } }
添加数据输出
CATALOG---null
IDENTIFIER_NORMALIZER---null
PK---id
SCHEMA---null
TABLE---t_info
TABLES---t_info
ENTITY_NAME---cn.silvernet.model.Info
JPA_ENTITY_NAME---Info
---------------------------------------
CATALOG---null
IDENTIFIER_NORMALIZER---null
PK---id
SCHEMA---null
TABLE---t_info
TABLES---t_info
ENTITY_NAME---cn.silvernet.model.Info
JPA_ENTITY_NAME---Info
---------------------------------------
Hibernate: insert into t_info (date, type, title, content, id) values (?, ?, ?, ?, ?)
相关文章推荐
- C#正则表达式字符列表
- 关于数据库乱码问题
- Python的基本数据类型
- VisibleIndex显示混乱,列的顺序发生变化(C#)
- VisibleIndex显示混乱,列的顺序发生变化(C#)
- 测试LVM的快照功能
- 【Unity基础知识之三】Unity Assets目录下的特殊文件夹名称
- Getting MAX_TEXTURE_SIZE from Caches::initConstraints()
- 你走了再无牵挂
- S19格式文件详解(S-record)【转】
- 五个有用的过滤器
- C#后台向前台注册脚本的代码
- 关于创业那些事
- 你对别人讲诚信,同时,你也要做一些防范措施,别人不讲诚信的时候你怎么办
- C# 静态变量和静态构造函数
- Java实现Zip压缩与解压(解决中文乱码问题)
- 如何在Mac OS X上安装 Ruby运行环境
- 曾帮Facebook把用户做到7亿的那个人,告诉你如何实现用户增长
- 编程细节 - 2
- VS2013双机调试环境配置