hibernateidgenerater.java
来自「管理公司合同」· Java 代码 · 共 77 行
JAVA
77 行
package cn.com.juneng.system.common.util;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.Properties;
import org.hibernate.HibernateException;
import org.hibernate.dialect.Dialect;
import org.hibernate.engine.SessionImplementor;
import org.hibernate.id.Configurable;
import org.hibernate.id.IdentifierGenerationException;
import org.hibernate.id.IdentifierGenerator;
import org.hibernate.type.Type;
import org.hibernate.util.PropertiesHelper;
import cn.com.juneng.system.common.COMMON;
public class HibernateIDGenerater implements IdentifierGenerator, Configurable {
private String keyName = "";
private static String seqTableName="SYS_SEQ";
private static String STRING_ZERO="00000000000000000000000000000000";
public void configure(Type type, Properties params, Dialect dialect) {
keyName = PropertiesHelper.getString("name", params, "hibernate_unique_key");
}
/**
* Generate a new identifier.
* @param session
* @param object the entity or toplevel collection for which the id is being generated
* @return Serializable a new identifier
* @throws SQLException
* @throws IdentifierGenerationException
*/
public Serializable generate(SessionImplementor session, Object object)
throws HibernateException{
/*
try{
Connection newconnection = session.connection();
Statement statement = newconnection.createStatement();
ResultSet resultset = statement.executeQuery("SELECT seq_value,prefix,postfix,seq_length FROM "+seqTableName+" where seq_name = '" + keyName.toUpperCase() + "'");
int seq_value=0;
String value = "";
if(resultset.next()){
seq_value=resultset.getInt(1);
String prefix=resultset.getString(2);
if(prefix==null){
prefix="";
}
String postfix=resultset.getString(3);
if(postfix==null){
postfix="";
}
int seqLength=resultset.getInt(4);
value=prefix+STRING_ZERO.substring(0,seqLength-prefix.length()-postfix.length()-(""+seq_value).length())+seq_value+postfix;
}
statement.close();
statement = newconnection.createStatement();
int j = statement.executeUpdate("update "+seqTableName+" set seq_value =seq_value+1 where seq_name = '" + keyName.toUpperCase() + "'");
if(j != 1){
throw new SQLException("Error while updating sequence");
}
statement.close();
return value;
}catch(SQLException e){
e.printStackTrace();
}
return null;
*/
return COMMON.getUUID();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?