ClassA {
@Id
@GeneratedValue
@Column(name = "a_id")
private long id;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "classA")
private Set<ClassB> classBs;
}
ClassB {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "a_id")
private ClassA classA;
@JoinColumn(name = "size")
private int size;
}
如果在加载/延迟加载时,如何向ClassA的classB添加约束?
例如,我只想加载ClassB,其中size&gt; 10进入ClassA&#39的Set classBs。
我知道我可以使用注释@OrderBy(value =&#34; size ASC&#34;)来订购Set,但是我可以添加除Order之外的约束吗?
我可以使用Hibernate实现吗?
我能够在Laravel(PHP框架)中完成。 http://laravel.com/docs/eloquent#eager-loading中的热切负载约束。
答案 0 :(得分:1)
看看Hibernate Filters
:
Documentation
Sample
您应该注意一件事,那就是过滤器不会永久地应用于实体,您需要在需要时启用它们:
session.enableFilter("myFilter");
答案 1 :(得分:0)
查看Filter
和FilterDef
,此处为documentation
FilterDef
条件Filter
,其名称是指在classB方面定义的过滤器。例如,请查看此answer。