您的位置:首页 > 其它

hibernate自定义主键生成策略2---关于Configurable接口继承和PersistentIdentifierGenerator常量的测试

2015-08-03 18:27 531 查看
hibernate自定义主键生成策略:http://blog.csdn.net/ieayoio/article/details/47259833

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 (?, ?, ?, ?, ?)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: