gpt4 book ai didi

spring - 对依赖于@OneToMany 集合的类进行单元测试

转载 作者:行者123 更新时间:2023-12-05 07:53:38 24 4
gpt4 key购买 nike

我试图在不依赖应用程序数据库的情况下进行一些测试。该应用程序使用带 Hibernate 的 JPA。我尝试在方法和类上使用 @Transactional 注释类,但没有成功。

这是 Employee.java 中的关系:

@OneToMany(mappedBy = "manager", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Employee> directReports;

这是测试,最后一个参数是manager:

Employee ceo;
Employee evp;

@Before
public void setup() {
ceo = new Employee("Name", "ceo", null);
evp = new Employee("Name", "evp", ceo);
}

@Test
public void testThatDirectReportsAreAssignedWithoutPersistence() {
assertNotNull(ceo.getDirectReports());
}

最佳答案

您拥有的是双向关系。 Hibernate 将自动填充关系的两端,但前提是它从数据库中读取它。如果您只是在一侧创建或更新关系而没有往返数据库,则它不会启动以修复另一侧。 AFAIK 也没有任何其他 JPA 实现。

对于双向关系,人们通常解析为这样的结构: How to handle bidirectional relationships when constructing hibernate entities? ,但这通常会导致代码困惑。

更好的是:尽量避免双向关联。

关于spring - 对依赖于@OneToMany 集合的类进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32399503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com