hibernate如何在自动递增或使用序列时获取新插入的记录主键?

时间:2017-12-21 13:41:50

标签: java hibernate jdbc

考虑我的数据库表主键是自动递增还是使用序列,hibernate如何在调用save()方法后立即获取新插入记录的主键。

只是想知道hibernate层和DB层之间的内部通信。

1 个答案:

答案 0 :(得分:0)

每个数据库供应商(MySQL,Oracle等)都有一个自定义Dialect实现(例如MySQLDialectOracleDialect),因此您最好poke through that code

我在Oracle9Dialect.java

中看到了以下内容
@Override
public String getSequenceNextValString(String sequenceName) {
    return "select " + getSelectSequenceNextValString( sequenceName ) + " from dual";
}