Hibernate(目前使用的版本是
然而當前的這麼多種生成方式未必能滿足我們的要求
比如increment
再如 identity
還有基於算法的生成方式生成出來的主鍵基本都是字符串的
我們現在需要一種生成方式
那麼我們需要自定義一個我們的主鍵生成器才能實現了
實現代碼:
package hibernate;
import java
import java
import java
import java
import java
import java
import mons
import mons
import org
import org
import org
import org
import org
import org
import org
import org
public class IncrementGenerator implements IdentifierGenerator
private static final Log log = LogFactory
private Long next;
private String sql;
public Serializable generate(SessionImplementor session
throws HibernateException {
if (sql!=null) {
getNext( nnection() );
}
return next;
}
public void configure(Type type
String table = params
if (table==null) table = params
String column = params
if (column==null) column = params
String schema = params
sql =
(sql);
}
private void getNext(Connection conn) throws HibernateException {
try {
PreparedStatement st = conn
ResultSet rs = st
if ( rs
next = rs
}
else {
next =
}
}catch(SQLException e)
{
throw new HibernateException(e);
}
finally {
try{
conn
}catch(SQLException e)
{
throw new HibernateException(e);
}
}
}
}
配置:
在對應的hbm文件裡面將id的配置如下:
<id name=
<generator class=
</id>
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28631.html