![]() |
1
4
有两种模式叫做“Repository”和“Aggregate”,它们来自Eric Evans 领域驱动设计 书,使用其中一个是最佳实践。 仓库模式
如果你要找员工的部门,应该是:
保存实体也可以独立使用其存储库:
聚合模式与两个存储库不同,实体之间没有连接聚合模式使用:
在这种情况下,要获取员工,您必须使用部门存储库:
保存的方法相同:您应该保存部门以保存员工的更改。 扼要重述这些模式的任何混合(最常见的是:两个repo和实体之间的JPA关系)都会导致将来很难维护的问题。 在大多数情况下,我更喜欢存储库模式:每个实体存储库,实体之间没有关系。 在您的情况下,我会选择存储库模式。 |
![]() |
2
3
可以按如下方式定义实体类:
保持部门在员工和员工在部门内的无效。您需要在这些实体上定义存储库来获取/保存。 另外,如果要使用一组employee,请确保它重写object类的hashcode()和equals()方法。 |
![]() |
3
0
在employee类中应该有一个department字段。无论何时更改员工与部门之间的关联,都需要设置employee.department,并在相应的department.employees集合中添加/删除员工。 然后您只需要保存部门,假设已为department.employees集合正确设置CascadeType。 |
![]() |
AntonBoarf · 休眠/春天:悲观主义者vs乐观主义者锁定? 6 年前 |
![]() |
Sinan Samet · Hibernate给出无法确定类型错误 6 年前 |
|
Carlos Chávez · Tomcat/Hibernate配置 6 年前 |
![]() |
Seric · 更改Naturald参数名称后出错 6 年前 |
![]() |
OOvic · 使用JoinTable实现多个关系中的JPQL查询 6 年前 |
![]() |
Jovan0042 · 在H2中持久化多个实体引发异常 6 年前 |