首页 > 解决方案 > spring Jpa 无法识别@Query 参数中的正确实体名称

问题描述

我面临一个非常有线的问题。所以需要你的意见。

我们有一个通用的请求-响应库,它有 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 内部,它正在创建问题。

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

标签: javaspring-bootspring-data-jpaspring-data

解决方案


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

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

推荐阅读