java

位置:IT落伍者 >> java >> 浏览文章

hibernate中自定义主键生成器[1]


发布日期:2023年04月14日
 
hibernate中自定义主键生成器[1]

Hibernate(目前使用的版本是)中提供了多种生成主键的方式

然而当前的这么多种生成方式未必能满足我们的要求

比如increment可以在一个hibernate实例的应用上很方便的时候但是在集群的时候就不行了

再如 identity sequence native 是数据局提供的主键生成方式往往也不是我们需要而且在程序跨数据库方面也体现出不足

还有基于算法的生成方式生成出来的主键基本都是字符串的

我们现在需要一种生成方式使用Long作为主键类型自动增支持集群

那么我们需要自定义一个我们的主键生成器才能实现了

实现代码:

package hibernate;

import javaioSerializable;

import javasqlConnection;

import javasqlPreparedStatement;

import javasqlResultSet;

import javasqlSQLException;

import javautilProperties;

import orgapachecommonsloggingLog;

import orgapachecommonsloggingLogFactory;

import orghibernateHibernateException;

import orghibernateMappingException;

import orghibernatedialectDialect;

import orghibernateengineSessionImplementor;

import orghibernateidConfigurable;

import orghibernateidIdentifierGenerator;

import orghibernateidPersistentIdentifierGenerator;

import orghibernatetypeType;

public class IncrementGenerator implements IdentifierGenerator Configurable {

private static final Log log = LogFactorygetLog(IncrementGeneratorclass);

private Long next;

private String sql;

public Serializable generate(SessionImplementor session Object object)

throws HibernateException {

if (sql!=null) {

getNext( sessionconnection() );

}

return next;

}

[] []

               

上一篇:struts2项目性能调优三步曲(一)

下一篇:hibernate中自定义主键生成器[2]