[英]Is there any criterion for hibernate criteria to cover contains condition of list
My question is that, I have a class like: 我的问题是,我有一个类似的课程:
@Entity
public class Product{
@Id
String id;
String name;
@ManyToMany
List<Tag> tags;
}
@Entity
public class Tag{
@Id
String id;
String name;
}
I want to search products with criteria like in but reversive as: 我想搜索具有以下条件但具有可逆性的产品:
session.createCriteria(Product.class).add(
Restrictions.and(
Restrictions.like("name",name+"%"),
Restrictions.contains("tags",tag)).list();
But obviously Restrictions.contains does not exist. 但是显然Restrictions.contains不存在。 I only can find solutions with HQL queries but I don't want to (actually can't) write HQL queries.
我只能通过HQL查询找到解决方案,但我(实际上不能)编写HQL查询。
Is there any way to handle this with criteria? 有什么办法可以用标准来解决这个问题?
I would just join the association using createAlias
et do a simple compare: 我只是使用
createAlias
加入该协会,并做一个简单的比较:
session.createCriteria(Product.class)
.createAlias("tags", "tag")
.add( Restrictions.eq("tag", tag))
.list()
Are you are in search of Restrictions.in(String propertyName, Collection values) ? 您是否在搜索Restrictions.in(String propertyName,Collection values) ? In the chapter 15.2.
在第15.2章中。 Narrowing the result set you will find an example:
缩小结果集,您会发现一个示例:
List cats = sess.createCriteria(Cat.class)
.add(Restrictions.not(Restrictions.in("name", new String[] { "Fritz", "Izi", "Pk" })))
.add(Restrictions.disjunction())
.list();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.