代码之家  ›  专栏  ›  技术社区  ›  Valrok

本机查询在h2上返回结果,但不在jpa存储库中

  •  1
  • Valrok  · 技术社区  · 6 年前

    我有一个用户的以下实体。

    data class User(
        @Id
        var userId: UUID,
        val orgId: UUID,
    
        @ManyToMany
        var representatives: MutableList<User>
    )
    

    表如下:

    USER                        USER_REPRESENTATIVES
      --USER_ID                    --USER_USER_ID  
      --ORG_ID                     --REPRESENTATIVES_USER_ID
    

    一个用户可以有许多代表,也可以是另一个用户本身的代表。我想创建一个查询,该查询将为我提供当前用户所代表的用户列表。

    在我的h2控制台中,当我使用以下查询时,我可以使用以下查询实现我想要的结果:

    SELECT USER_USER_ID FROM USER_REPRESENTATIVES
                WHERE EXISTS ( 
                SELECT USER_ID FROM USER 
                WHERE USER_REPRESENTATIVES.REPRESENTATIVES_USER_ID = USER.USER_ID)
    

    然而,当我尝试在我的jpa存储库中实际运行它时,调用本身并没有任何回报。以下是我在存储库中使用的代码:

    @Query(value = "SELECT USER_USER_ID FROM USER_REPRESENTATIVES " +
                "WHERE EXISTS ( " +
                "SELECT USER_ID FROM USER " +
                "WHERE USER_REPRESENTATIVES.REPRESENTATIVES_USER_ID = USER.USER_ID)",
                nativeQuery = true)
        fun getUserRepresentativeFor(): MutableList<UUID>
    

    我在spring/kotlin方面做错了什么?当我尝试调用这个函数时,我什么也得不到?

    0 回复  |  直到 6 年前