java在列表值中时如何在hql中使用like查询?
我正在使用spring mvc。 这是我的旧代码,它正确地完善了
public List<Details> filter(String search) {
TypedQuery<Details> query = em.createQuery("SELECT DISTINCT um FROM Details um INNER JOIN um.admin ad WHERE um.name like :search and ad.status =:status", Details.class );
String searchkey = search;
String status = "True";
query.setParameter("search", searchkey + '%');
query.setParameter("status", status);
return query.getResultList();
}
其中,Details类将名称作为字符串包含
public class Details implements Serializable {
@Column(name="name")
private String name;
@OneToMany(cascade={CascadeType.ALL})
@JoinColumn(name ="id")
private List<Email> email= new ArrayList<Email>();
}
像这样我想使用搜索作为电子邮件,在喜欢而不是名称我想使用电子邮件。现在我尝试下面的代码,但它显示了错误
public List<Details> filterEmail(String search) {
System.out.println("Email filtering query..");
TypedQuery<Details> query = em.createQuery("SELECT DISTINCT um FROM Details um INNER JOIN um.admin ad WHERE elements(um.email) like :search and ad.status =:status", Details.class );
String status = "True";
query.setParameter("search",'%' +search+ '%');
query.setParameter("status", status);
return query.getResultList();
}
我怎么用这个?提前谢谢
# 1 楼答案
为什么不像这样搜索电子邮件对象的mail属性呢