Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么数据库中的@ManyToMany获得多对象响应?_Java_Hibernate - Fatal编程技术网

Java 为什么数据库中的@ManyToMany获得多对象响应?

Java 为什么数据库中的@ManyToMany获得多对象响应?,java,hibernate,Java,Hibernate,我有3个具有多对多关系的表 我的代码配置在课堂预约中被禁止 @ManyToMany(fetch = FetchType.EAGER) @JoinTable(name = "student_appointment", joinColumns = { @JoinColumn(name = "app_id") }, inverseJoinColumns = { @JoinColumn(name = "student_id") }) private List<

我有3个具有多对多关系的表

我的代码配置在课堂预约中被禁止

@ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "student_appointment", 
    joinColumns = { @JoinColumn(name = "app_id") }, 
    inverseJoinColumns = { @JoinColumn(name = "student_id") })
    private List<Student> clients;

我想和名单上的3个学生预约一次。然而,结果是3次任命。一个约会有三个学生。我的代码有什么问题?

也许查询没有问题。这取决于数据库内容是什么。至少在使用了
JOIN-FETCH
的情况下,您可以为正在查询的实体生成重复的。在JPQL select中添加一个
DISTINCT
会删除这些内容,因此您可能需要尝试在您的条件中添加一个DISTINCT。@maDa:这是我的错误。我创建了无法为2字段创建主键的表约会。\u学生。@Kayaman:谢谢支持。在我添加
setResultTransformer(Criteria.DISTINCT\u ROOT\u ENTITY)
之后,这就是我的工作,也许查询没有问题。这取决于数据库内容是什么。至少在使用了
JOIN-FETCH
的情况下,您可以为正在查询的实体生成重复的。在JPQL select中添加一个
DISTINCT
会删除这些内容,因此您可能需要尝试在您的条件中添加一个DISTINCT。@maDa:这是我的错误。我创建了无法为2字段创建主键的表约会。\u学生。@Kayaman:谢谢支持。在我添加
setResultTransformer(Criteria.DISTINCT\u ROOT\u ENTITY)
Criteria cr = session.createCriteria(Appointment.class)
                    .add((Criterion) Restrictions.between("startDate", startDate, endDate));

cr.list();