【问题标题】:CRUDRepository native query with parameter带有参数的 CRUDRepository 本机查询
【发布时间】:2018-12-05 02:56:27
【问题描述】:

我在 Spring Data JpaRepository 中使用原生查询,如下所示:

  @Query(value = "SELECT SUBSTRING_INDEX(u.email, '@', -1) as domain, COUNT(*) as domainCount r.invite_organization_id"
        + "  FROM users u,_registrations r where u.user_id=r.user_id and r.invite_organization_id=?1"
        + "  GROUP BY "
        + "SUBSTRING_INDEX(u.email, '@', -1) ORDER BY domainCount DESC", nativeQuery = true)
List<Object[]> countTopDomain(String orgId);

上面给了我以下例外: 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“r.invite_organization_id FROM users u,registrations r where u.user”附近使用正确的语法

我将如何从方法 countTopDomain() 参数中传递邀请组织 ID(在查询中)的值。

【问题讨论】:

  • countTopDomain(@Pram("orgId") String orgId) 和 :orgId 而不是 ?1 在查询中
  • 即使根据您的更改,我也会收到以下错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“r.invite_organization_id FROM srs_users u,srs_user_registrations r where u.user”附近使用正确的语法

标签: spring-boot jpa spring-data-jpa spring-data


【解决方案1】:

'r.invite_organization_id FROM srs_users u,srs_user_registrations r',有语法错误。 ',' 在 count (*) as domainCount 后丢失

【讨论】:

  • 你应该使用代码段来格式化你的答案
【解决方案2】:

试试这个

@Query(value = "SELECT SUBSTRING_INDEX(u.email, '@', -1) as domain, COUNT(*) as domainCount, r.invite_organization_id"
    + "  FROM srs_users u,srs_user_registrations r where u.user_id=r.user_id and r.invite_organization_id=?1"
    + "  GROUP BY "
    + "SUBSTRING_INDEX(u.email, '@', -1) ORDER BY domainCount DESC", nativeQuery = true)
List<Object[]> countTopDomain(String orgId);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 2012-11-23
    • 2016-12-10
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多