【发布时间】:2023-01-29 05:27:45
【问题描述】:
我有一个实体类,它由多个外键约束组成,由 ManyToMany 等处理。
public class MyExampleClazz {
.......
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "secondClazzEntities", joinColumns = @JoinColumn(name = "id"),
inverseJoinColumns = @JoinColumn(name = "id"))
List<MySecondClazz> secondClazz;
.....
}
对于某些情况,我想改变获取策略,例如从 EAGER 到 LAZY,反之亦然,因为对于某些读取操作,我不需要 EAGER 获取(想象一个 RESTful 服务,它只提供一小部分数据,而不是所有数据),但在大多数情况下,我需要 EAGER。 一种选择是引入一个实体(对于同一个表)但不同的注释,但它会重复代码和维护方面的工作。
是否有其他方法可以通过更少的工作来达到相同的结果?
【问题讨论】:
-
将其标记为惰性(为了安全)并使用实体图(获取或加载图)来定义所涉及的特定用例所需的内容。许多教程和问题已经存在(stackoverflow.com/a/31978349/496099)