我们正在尝试从EntityManager中获取连接对象
下面是示例代码
final Session unwrap = proxy.unwrap(Session.class);
unwrap.doWork(new Work()
{
@Override
public void execute(Connection connection) throws SQLException
{
PreparedStatement ps = connection.prepareStatement(MY_QUERY);
for (Object value : valueSet)
{
....
....
ps.addBatch();
}
try
{
int[] ints = ps.executeBatch();
} finally
{
ps.close();
}
}
});
这很好。
我们担心的是,当调用此代码时,每次在DataSource上调用getConnection时。这是否意味着从池中获得了新的连接?
这对我们的用例具有性能影响。 我们的理解是将使用当前的活动连接。
理解不正确吗?
答案 0 :(得分:0)
Hibernate文档说:
用于允许用户使用由此Session管理的Connection执行JDBC相关工作的控制器。
因此它是会话使用的(单个)连接。 其他一切都是错误。