![](/img/trans.png)
[英]Is there any criterion for hibernate criteria to cover contains condition of list
[英]Hibernate criteria list must contains another list
给定简化模型:
public class Access {
private Set<Tag> tags;
}
public class Item {
private Set<Tag> tags;
}
访问权限授予对完全包含其标签的每个项目的访问权限,而该项目是否具有更多标签则没有问题。
但是我不知道如何为此创建休眠条件查询。 你可以帮帮我吗?
实际上,您不需要执行任何其他操作,而是告诉Hibernate始终随您的实体一起加载它。
因此,选择一,始终加载:
public class Access {
@OneToMany(cascade = {CascadeType.ALL}, orphanRemoval = true, targetEntity = Tag.class, fetch = FetchType.EAGER)
@JoinColumn(nullable = true)
protected Set<Tag> tags;
}
因此, OneToMany注释告诉Hibernate在链接到您的表的Tag表中查找标签,并始终执行此操作: FetchType.EAGER
。
实际上,Hibernate将在Tag表中创建两个带有外键的表。
如果您不想延迟加载此列表,可以设置FetchType.LAZY
,然后需要做一些额外的工作才能填充此列表。
一个简单的加载将填满所有存储的值:
session.get(Access.class, key);
通过标签过滤访问列表可以看到以下答案: 如何在Hibernate下加入两个不同的条件?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.