有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Arquillian和TransactionAttribute类型。需要新的

在我的arquillian测试中,调用了许多应用程序方法,它们要么从数据库中读取数据,要么创建数据并保存到数据库中。a) 在某一点上,调用了一个用@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)注释的方法。测试失败,因为带注释的方法找不到(读取时返回0条记录)由某些以前调用的方法(用TransactionAttributeType.REQUIRED注释)保留的某些数据。这可能是新事务打开时的正常行为。在以前调用的方法中读取数据并将其作为参数传递给带注释的(TransactionAttributeType.REQUIRE)方法可以正常工作,但数据应该在REQUIRES\u新方法中读取。当TransactionAttribute类型为时,在其他测试中也会出现相同的问题。需要使用新的。有解决这个问题的办法吗

b)我还提到,arquillian在使用@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)注释的方法方面存在问题。这就像这些方法中的代码根本没有执行一样

我目前针对这两个问题的解决方案是创建一个覆盖有问题方法的模拟类。在b的情况下,重写的方法用@TransactionAttribute(TransactionAttributeType.SUPPORTS)注释


共 (1) 个答案

  1. # 1 楼答案

    在调用以TransactionAttributeType.REQUIRED_NEW注释的方法之前,请尝试使用flush()方法,然后使用EntityManager的refresh()