jdbc操作后hibernate无法读取到插入的数据,经断点测试确实已经保存到数据库
service稍微改了一些业务内的东西,抱歉
public void addXXX(){
// amount
String xxxHQL = " from XXX as rr where aaId=? and bbId=?";
String yyyHQL = " from YYY as cr where aaId=? and bbId=?";
long xxxCount = 0;
long yyyCount = 0;
// batch add sql
String sql = "insert into XXX(--,--,--,--,--,--) value(?,?,?,?,?,?)";
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = dataSource.getConnection();
connection.setAutoCommit(false);
preparedStatement = connection.prepareStatement(sql);
for () {
preparedStatement.setInt(1, );
preparedStatement.setInt(2, );
preparedStatement.setInt(3, );
preparedStatement.setInt(4, );
preparedStatement.setTimestamp(5, );
preparedStatement.setString(6, );
preparedStatement.addBatch();
}
preparedStatement.executeBatch();
preparedStatement.close();
connection.commit();
} catch (Exception e) {
try {
connection.rollback();
connection.close();
} catch (SQLException e1) {
}
e.printStackTrace();
} finally {
try {
connection.close();
} catch (SQLException e) {
}
}
xxxDao.getCurrentSession.clear();
for () {
xxxCount = xxxDAO.getSum(xxxHQL);// @Autowired注入
yyyCount = yyydDAO.getCount(yyyHQL);// @Autowired注入
// xxxCount 无法读取hibernate插入数据
}
}
上面的代码简化如下:
connection 1 打开,connection 1 开启事务
connection 2 打开,connection 2 开启事务,connection 2提交,connection 2关闭。
connection 1 查询, connection 1 提交事务,connection 1 关闭。
你觉得connecton 2 跟connection 是一个事务里面的? 显然不是。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。