我们正在嵌套几个实体。但是,在检索时,我们只想获取那些处于活动状态的实体。
@Entity
public class System {
@Id
@Column(name = "ID")
private Integer id;
@OneToMany(mappedBy = "system")
private Set<Systemproperty> systempropertys;
}
@Entity
public class Systemproperty {
@Id
@Column(name = "ID")
private Integer id;
@Id
@Column(name = "ACTIVE")
private Integer active;
}
请求时,Systemproperties
我只想获取active
( active = 1 ) 的属性。
环顾四周,我发现了一些休眠注释和使用子查询的可能性。但是,两者都不适合我。尽管我们目前正在使用休眠,但我正在考虑用 Eclipselink 替换它,因为我们目前必须使用急切加载,并且很可能会遇到性能问题。子查询并不能很好地工作,因为我们嵌套了几个级别。
Eclipselink 似乎有一个可以工作的@Customizer注释,但是它似乎遵循与休眠@FilterDef
注释不同的概念,并且在切换时会导致额外的开销。
@JoinColumn
似乎不允许进一步过滤。有没有标准的 JPA 方法来解决这个问题?