考虑我的数据库表主键是自动递增还是使用序列,hibernate如何在调用save()方法后立即获取新插入记录的主键。
只是想知道hibernate层和DB层之间的内部通信。
答案 0 :(得分:0)
每个数据库供应商(MySQL,Oracle等)都有一个自定义Dialect实现(例如MySQLDialect或OracleDialect),因此您最好poke through that code
中看到了以下内容@Override
public String getSequenceNextValString(String sequenceName) {
return "select " + getSelectSequenceNextValString( sequenceName ) + " from dual";
}