Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
验证javax.persistence.EntityManager.remove(对象实体)是否确实删除了实体的正确方法_Java_Jpa_Ejb - Fatal编程技术网

验证javax.persistence.EntityManager.remove(对象实体)是否确实删除了实体的正确方法

验证javax.persistence.EntityManager.remove(对象实体)是否确实删除了实体的正确方法,java,jpa,ejb,Java,Jpa,Ejb,我们正在从EJB2转换为EJB3+JPA EJB2 EntityBean的ejbremove方法抛出javax.ejb.RemoveException 而Javax.Persistence.EntityManager.remove只抛出一个IllegalArgumentException和一个TransactionRequiredException,这两个异常都与实体是否被删除无关(或者我从javadocs中收集到的信息) 那么,我如何验证在EntityManager.remove()的执行过程

我们正在从EJB2转换为EJB3+JPA

EJB2 EntityBean的ejbremove方法抛出javax.ejb.RemoveException

而Javax.Persistence.EntityManager.remove只抛出一个IllegalArgumentException和一个TransactionRequiredException,这两个异常都与实体是否被删除无关(或者我从javadocs中收集到的信息)

那么,我如何验证在EntityManager.remove()的执行过程中不会发生任何可能生成RemoveException的情况呢


我想我可以先保存对象的主键,然后再尝试删除它,然后再搜索它,并验证它实际上不在那里,但这就是原因,我怀疑我只是缺少了一些明显的东西

remove()实际上并不删除实体。它标记要移除。实际移除将在下一次冲洗时进行,并且只有在提交传输后,移除才会是“永久性”的。如果发生任何异常,您唯一能做的就是回滚当前事务。如果有一个回滚,移除,即使它发生了,是。。。好的,谢谢。这太完美了。