0
我想了解为什么我需要在某些情况下使用@Transactional,让我们来看看。为什么要使用@Transactional Jboss Seam
如果我没有使用@Transactional批注的方法,jboss会在日志中返回:“自己关闭连接,关闭连接”。
public void doSomething() {
((Session) em.getDelegate()).doWork(new Work() {
@Transactional(TransactionPropagationType.NEVER)
public void execute(Connection connection) throws SQLException {
StringBuilder sqlSP = new StringBuilder();
sqlSP.append("{ call ");
sqlSP.append("myprocedure");
sqlSP.append("(?)}");
connection.setReadOnly(true);
CallableStatement cs = connection.prepareCall(sqlSP.toString());
cs.setInt(1, 1020);
cs.execute();
//FORCE A EXCEPTION and JBOSS SHOW "Closing connection for you"
throw new MyException("FATAL ERROR");
}
});
}
但是当我把“@Transactional”的问题消失了,我不明白为什么。有人可以解释吗?
你知道交易是什么吗? – Kayaman