休眠选择由另一个表按顺序区分

时间:2019-03-11 09:28:54

标签: java hibernate

我知道与此相关的话题很多,但是我找不到解决问题的方法。我知道如果我在休眠状态下使用“ distinct”和“ order by”,则order by中的列必须位于select子句中。其他文章只是说该列必须处于选择状态,但是我还没有找到一个示例来实现此目的。

这是我的课程:

@Entity
@Table(name = "DANCE")
public class Dance implements Serializable {

@Id
private int tanzid;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "SID")
private School school;

@Basic
@Column(name = "titel")
private String titel;

(getter setter...)

我的查询(无效)

SELECT distinct d FROM Dance d order by d.school.schoolname

例如,如果我按标题排序,那​​么它正在工作。 我试图在选择子句中设置学校名称:

SELECT distinct d, d.school.schoolname FROM Dance d order by d.school.schoolname

但是随后休眠状态抱怨查询的返回类型不是来自“ Dance.class”类型。

如何按学校名称定单。

谢谢

1 个答案:

答案 0 :(得分:0)

您将不得不针对一列选择不同的行。不幸的是,这不是sql标准的一部分,因此在jpql或hql中无法实现。您必须使用特定于供应商的语法和本机查询才能实现此目的。 Here是Postgres中的一个例子。

相关问题