1,在hibernate4.0中移除了。session.connection(); ---><url>https://hibernate.onjira.com/browse/HHH-2603</url>
所以在使用hibernate操作离散型JDBC操作的时候,不能再使用这个方法。
解决方案:
1,hibernate4只是在接口Deprecate了这个interface,那么我们仍然可以SessionImpl得到
<code>
2,或者使用hibernate提供的解决方案在hibernate API中提到了替代方法---->http://docs.jboss.org/hibernate/core/3.5/api/org/hibernate/jdbc/Work.html
使用方法如下:
<code>
3,或者使用:
SessionFactoryUtils.getDataSource(getSessionFactory()).getConnection()
所以在使用hibernate操作离散型JDBC操作的时候,不能再使用这个方法。
解决方案:
1,hibernate4只是在接口Deprecate了这个interface,那么我们仍然可以SessionImpl得到
<code>
public Connection getConnection() {
try {
if (connectionMethod == null) {
// reflective lookup to bridge between Hibernate 3.x and 4.x
connectionMethod = this.session.getClass().getMethod("connection");
}
return (Connection) ReflectionUtils.invokeMethod(connectionMethod, this.session);
}
catch (NoSuchMethodException ex) {
throw new IllegalStateException("Cannot find connection() method on Hibernate session", ex);
}
}
</code>
2,或者使用hibernate提供的解决方案在hibernate API中提到了替代方法---->http://docs.jboss.org/hibernate/core/3.5/api/org/hibernate/jdbc/Work.html
使用方法如下:
<code>
session.doWork(new Work() {
@Override
public void execute(Connection conn) throws SQLException {
doSomeThingWithJdbc(conn);
}
}
</code>
3,或者使用:
SessionFactoryUtils.getDataSource(getSessionFactory()).getConnection()
来自类org.springframework.orm.hibernate4.SessionFactoryUtils