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

spring-data-jpa:带有子查询的内部联接

萧晓博
2023-03-14
SELECT t1.*
FROM az_manager t1
INNER JOIN
(
    SELECT maID, MAX(datum) AS max_date
    FROM az_manager
    WHERE maID IN (7243, 1)
    GROUP BY maID
) t2
   ON t1.maID = t2.maID AND t1.datum = t2.max_date
WHERE
    t1.maID IN (7243, 1);
@Entity
@Table(name = "az_manager")
@IdClass(TnsWorkingHoursManagerId.class)
@Getter
@Setter
public class TnsWorkingHoursManager extends TnsObject{

    @Id
    @Column(name = "datum")
    private long date;

    @Id
    @Column(name = "maid")
    private int employeeId;

    @Column(name = "typid")
    private int typeId;

    @Column(name = "bemerkung")
    private String comment;

    @Column(name = "host")
    private String host;

    @Column(name = "modus")
    private byte mode;

    public TnsWorkingHoursManager() {
    }

}
@Query(value = "SELECT azm1 FROM az_manager azm1 INNER JOIN (SELECT maID, MAX(datum) AS max_date FROM az_manager WHERE maID IN(:userIds) GROUP BY maID) azm2 ON azm1.maID = azm2.maID AND azm1.datum = azm2.max_date WHERE azm1.maID IN (:userIds)")
    List<TnsWorkingHoursManager> getLastEntries(@Param("userIds") ArrayList<Integer> userIds);

在第二个选择,它说“'select'意外”

共有1个答案

轩辕亮
2023-03-14

对于其他可能偶然发现这个问题的人来说:

如果不将nativeQuery=true参数添加到Spring存储库中的@query注释中,查询将被认为是用JPQL编写的。

来自JPQL文档:

 类似资料:
  • 问题内容: 我绝对是SQL的新手,我一直在努力用Postgresql中的以下表结构编写一个复杂的查询: 查询的目的是获取每个用户的报告类型数量,并将其显示在一列中。有三种不同类型的报告。 使用group-by的简单查询将解决问题,但将其显示在不同的行中: 问题答案:

  • 我必须用内部连接执行这个JPA查询。 问题是当为空。在获取列表并迭代之前,我需要检查是否为空。 以我的编码结构,不可能在其他地方这样做。但是我必须在JPA查询本身内完成。 请帮帮忙。

  • 声明使用输入参数属性作为查询参数的Spring data JPA查询的最简单方法是什么? ...但Spring data/JPA不喜欢我在参数上指定属性名。 最合适的选择是什么?

  • 问题内容: 我正在使用,要求提供具有不同字段的搜索功能。搜索之前输入的字段是optional.I有5场说。 在这里我只需要查询用户给定的值,其他字段应该被忽略。 因此,这里我们考虑输入的值和进行查询。在这种情况下,Spring数据是具有限制中提到的这篇文章(不可扩展,所有可能出现的问题,应书面)我使用的,但仍然存在问题的领域应该被忽视,需要开发的几乎所有可能出现的问题。在这。如果搜索字段是? 用可

  • 问题内容: 我有实体和 我可以按用户实体获得所有测试: 但是我可以使用哪个查询查找所有测试? 问题答案: 以下方法签名将使你想要: 这是使用Spring Data JPA 的属性表达式功能。签名将转换为。请注意,这将对给定的用户名执行完全匹配。

  • 我正在使用Spring Data JPA,并试图将查询添加到我的存储库中。我试图在没有@Query注释的情况下构建查询,比如: 我的目标是构建这样的查询: 我的问题是OR子句。有没有办法确保有括号?否则,逻辑就不对了。我在这里找到的例子:http://static.springsource.org/spring-data/data-jpa/docs/1.0.0.M1/reference/html/