【问题标题】:spring Jpa is not recognizing the correct Entity name inside @Query paramspring Jpa 无法识别@Query 参数中的正确实体名称
【发布时间】:2021-11-02 14:14:12
【问题描述】:

我面临一个非常棘手的问题。所以需要您的意见。

我们有一个通用的请求-响应库,它有 2 个文件夹结构,用于 2 个不同的区域:

com.test.aisa
com.test.europe

这两个包都有共同的实体名称 Transaction.java(因为这是跨区域通用的。因此,它已经在库中创建了区域特定的包结构)。

现在,我们有 2 个 spring boot 应用程序。一个用于亚洲/一个用于欧洲。

在我的 ASIA SPRING BOOTAPP 应用程序中,我编写了 TransactionRepository.java。 代码如下:

public interface TransactionRepository  extends JpaRepository<com.test.asia.Transction,String>{


@Query("select ai from Transaction ai where ai.name : name")
Stream<Transction> findTransctionByName(@Param("name"));

}

现在问题在于 @Query("select ai from Transaction ai where ai.name : name") 它指向 com.test.europe.Transaction.java强>。

它无法识别作为 com.test.aisa.Transaction.java 的一部分存在的字段。

例如名称字段存在于 com.test.aisa.Transaction.java 中,而不是它的欧洲版本。 休息它指向正确事务实体的每个地方。仅在 @Query 内部,它正在创建问题。

请帮忙!!!!!!! 我以前从未见过这种问题。!!!

【问题讨论】:

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


    【解决方案1】:

    你可以这样做:

    @Query("select ai from Transaction ai where ai.name= :name")
    

    你忘记了 where 条件下的相等运算符

    【讨论】:

      【解决方案2】:

      您必须在 jpa 查询中使用完整的类名:

      @Query("select ai from com.test.asia.Transaction ai where ai.name = :name")
      

      【讨论】:

      • 不,通常不需要指定 FQCN。
      猜你喜欢
      • 2019-05-29
      • 2011-04-24
      • 2018-11-14
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多