当前位置: 首页 > 知识库问答 >
问题:

Hibernate按另一个表的顺序选择distinct

蒲昊苍
2023-03-14

我知道有很多关于这个的话题,但是我找不到解决我的问题的方法。我知道如果我在hibernate中使用“不同”和“order by”,order by中的列必须在选择子句中。其他文章只是说该列必须在选择中,但是我还没有找到一个示例来实现这一点。

这是我的班级:

@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子句中设置学名:

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

但是然后hibernate抱怨查询的返回类型不是类型“Dance.class”

我怎样才能获得一个学校的名字。

谢谢你

共有1个答案

彭星津
2023-03-14

您必须针对一列选择不同的行。不幸的是,这不是sql标准的一部分,因此在jpql或hql中无法实现。您必须使用特定于供应商的语法和本机查询来实现这一点。这里是一个在博士后的例子。

 类似资料:
  • 我有两张桌子。括号中的属性名和列名。 表Animal有字段:animalId(animalId)、name(name)、owner(owner_id)owner与owner对象和owner_id列是多对一关系 表所有者有字段:ownerId(owner_id),name 我想选择一个ID为5的动物的主人。冬眠怎么能做到呢?

  • 问题内容: 我认为使用某种顺序才有意义。我想做的是在视图中包括该子句,以便该视图上的所有s都可以忽略它。但是,我担心该订单不一定会延续到,因为它没有指定订单。 是否存在一种情况,即视图指定的顺序不会反映在该视图上的select结果中(该视图中的order by子句除外)? 问题答案: 您不能指望没有显式子句的任何查询中的行顺序。如果查询有序视图,但没有包括子句,则如果它们的顺序正确,请感到惊喜,并

  • 问题内容: 我正在尝试使用Hibernate的@Formula批注从另一个表中检索实体。给出以下代码: Result类如下所示: 但是,在尝试加载测试实体时,出现错误“找不到列“ TEST0_.RESULTDATE””。我还尝试了其他一些涉及@JoinFormula批注的事情,但是没有成功。我也遇到了这个答案,这似乎表明我在做的事情应该起作用,但事实并非如此。我该如何工作? 问题答案: 因此,我找

  • 问题内容: 我有类似的东西 如果我只是这样做,它将以ID升序返回行。有没有一种方法可以按照IN语句中给出的顺序取回行? 问题答案: 您应该使用“ ORDER BY FIELD”。因此,例如:

  • 我的数据库中有两个表。一个表包含有关用户的信息,而另一个表包含有关预订的数据。当用户进行预订时,userid将被放置在预订表中。现在,我想展示一张用户的照片,其中包括预订的备注和日期,但是照片在users表中。 这是我的两张桌子: null null