对于Session

时间:2016-09-21 06:17:57

标签: mysql hibernate

  

对于类型Session

,方法connection()未定义

当我在Hibernate 5.2.2中使用预准备语句时出现此错误。

问题:

Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
PreparedStatement statement=session.connection().prepareStatement("INSERT INTO registration values (?,?,?)");

我在连接中遇到错误()。我也改变了hibernate版本。但是我无法解决这个错误。

1 个答案:

答案 0 :(得分:0)

该方法实际上不存在。它被删除了。 Hibernate 3.5 Javadoc说:

  

已过时。 (计划在4.x中删除)。更换取决于需要;用于做直接JDBC的东西使用doWork(org.hibernate.jdbc.Work);开设临时会议'使用(TBD)。

接口Work有一个方法可以传递Connection

  

void execute(连接连接)抛出SQLException

     

使用提供的连接执行此工作实例封装的离散工作。

该方法可以使用Java 8 lambdas实现:

session.doWork(() -> {
  connection.prepareStatement("INSERT INTO registration values (?,?,?)");
});