我想对用户提供的一些变量进行搜索。
我正在做什么来实现表收集中的数据:
这是我的实体:
@Entity
@Table
public class FrontRequest implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Long tutorfront_id;
@Column
private String tutorialType;
@Column
private String tutorialLevel;
@ElementCollection(fetch=FetchType.EAGER)
@Fetch(value = FetchMode.SELECT)
private Collection<String> tutorialSubjects= new HashSet<String>();
@Column
private String tutorialCity;
@Column
private String noOfStudent;
@Column
private String classWeek;
@Column
private String tutionFee;
@Column
private String tutionFeerate;
@Column
private String tutorSex;
@Column
private String tutorEducation;
@Column
private Date postingDate;
@Column
private String studentSchool;
}
现在我想获取 FrontRequest 对象作为列表,这里我有一个主题作为输入。
现在我想在 FrontRequest.TutorialSubjects 中获取 FrontRequest 主题。
为此,我尝试执行以下操作:
Query query=session.createQuery("from FrontRequest frontreq where :tutorialsubject IN frontreq.tutorialSubjects");
query.setParameter("tutorialsubject", tutorialSubject);
List<FrontRequest> frontRequest=query.list();
但它给出语法无效的异常。
我不知道我错在哪里。可能是我做错了。
是的,问题是一样的
尝试在 JPQL 查询中使用 IN 运算符时出现问题
但是,它与此略有不同,即我在我的实体中使用字符串类型集合。当我尝试使用这里的成员时,它不起作用并抛出异常
org.hibernate.hql.internal.ast.QuerySyntaxException: 子树的意外结束 [来自com.tutor.entity.FrontRequest frontreq 其中 frontreq.tutorialCity like '%' 和 :tutorialsubject MEMBER OF frontreq.tutorialSubjects]
请帮忙。
提前谢谢。
最后,我已经解决了 where 子句中"In elements"的问题。
查询为:
from FrontRequest frontreq where :tutorialsubject IN elements (frontreq.tutorialSubjects)
query.setParameter("tutorialsubject", tutorialSubject);
List<FrontRequest> frontRequest=query.list();
感谢所有人,应该给它+1。