hibernate - 嵌套对象的 HQL 查询中的问题
问题描述
我有这两个类和一个插入数据的代码:
@Entity
@Table(name = "quiz_test")
public class QuizTest implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToOne
@JoinColumn(name = "quiz_id")
private Quiz quiz;
@Entity(name = "Quiz")
@Table(name = "quiz")
@PrimaryKeyJoinColumn(name="id")
public class Quiz implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToMany(fetch = FetchType.EAGER, cascade=CascadeType.ALL)
private List<StudentClass> stClasses= new ArrayList<>();
我想进行查询以搜索 StudentClass 的所有测验,如下所示:
public List<StatStudentClass> getStatistic(StudentClass sc){
List<QuizTest> resultDb=(List<QuizTest>) hibernateTemplate.find("FROM QuizTest qt WHERE qt.quiz.stClasses= ?", sc);
}
但我有这个错误:
org.hibernate.QueryException:预期位置参数计数:1,实际参数:[StudentClass [id=2,name=Seconde A,startDate=2018-06-27,endDate=2018-11-05,students=[fr.dawan .autoquiz3000.beans.User@c1f72974, fr.dawan.autoquiz3000.beans.User@b15245c3, fr.dawan.autoquiz3000.beans.User@7f943dc1, fr.dawan.autoquiz3000.beans.User@9eaa7d67, fr.dawan.autoquiz3000 .beans.User@e7d21a2c,fr.dawan.autoquiz3000.beans.User@cfbe7565],版本=7]] [FROM QuizTest qt INNER JOIN qt.quiz q WHERE q.stClasses= ?]
有人可以向我解释我做错了什么!
谢谢你!
解决方案
推荐阅读
- sql - 当我将搜索条件放入 COUNT() 而不是 WHERE 子句时会发生什么?
- javascript - 切换多个 div
- mysql - 如何通过解释 docker-compose.yml 中的卷来定位用于备份的主机存储?
- javascript - TypeError:无法读取开玩笑酶测试中未定义的属性
- python - 在 Pandas 中将函数应用于 loc 调用会导致底层数据帧发生变化?
- navigation - ScreenManager 外部的按钮,用于控制 ScreenManager 屏幕加载
- html - 在表格单元格内的两个图像之间放置一个 Div
- android - 如果在viewmodel中做简单的操作,我们需要livedata吗
- java - 如何从数组中删除重复元素
- javascript - jQuery函数在第一次点击后停止工作