Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @事务性不回滚值_Java_Jakarta Ee_Transactions_Transactional - Fatal编程技术网

Java @事务性不回滚值

Java @事务性不回滚值,java,jakarta-ee,transactions,transactional,Java,Jakarta Ee,Transactions,Transactional,也许我误解了Java EE@Transactional的工作原理,我编写了一个简单的示例,但注释似乎不起作用: @Transactional(rollbackOn = BusinessException.class) public void save() throws BusinessException { lista.add("Mary"); validar(); lista.add("John"); } private void validar() throws Bu

也许我误解了Java EE@Transactional的工作原理,我编写了一个简单的示例,但注释似乎不起作用:

@Transactional(rollbackOn = BusinessException.class)
public void save() throws BusinessException {
    lista.add("Mary");
    validar();
    lista.add("John");
}
private void validar() throws BusinessException{
   throw new BusinessException("exception");
}

即使发生BusinessException,在方法开头添加到列表中的值(“Mary”)也不会回滚。这是预期的行为吗?@Transactional是否仅用于管理数据库(和其他资源)事务?

@Transactional仅用于管理数据库事务。事务是针对数据库执行的工作单元。更多的基本信息可以在这里找到-感谢Sundararaj的启示。我一直认为术语transaction在这里更一般,数据库事务也由@Transactional注释管理。