Java Spring数据JPA在两个不相关的表上左连接

Java Spring数据JPA在两个不相关的表上左连接,java,spring,hibernate,kotlin,spring-data-jpa,Java,Spring,Hibernate,Kotlin,Spring Data Jpa,我有以下两个实体,它们之间没有关系。我想执行左连接从两个表获取数据。由于spring repository只在一个表上提供返回结果,我如何修改代码以从两个表获取数据 @Table(value = "customer") data class Customer( val id: Int, val name: String, val groupNumber: String, ) @Table(value = "customer_policy&q

我有以下两个实体,它们之间没有关系。我想执行左连接从两个表获取数据。由于spring repository只在一个表上提供返回结果,我如何修改代码以从两个表获取数据

@Table(value = "customer")
data class Customer(
    val id: Int,
    val name: String,
    val groupNumber: String,
)

@Table(value = "customer_policy")
data class Customer_Policy(
    val audt_id: Int,
    val policyNUmber: String,
    val groupNumber: String,
)
这是我的问题

Select c.name,cp.policuNumber from Customer c left join customer_policy on c.groupNumber = cp.groupNumber

如何定义返回上述结果的接口存储库。

在Spring Data JPA中,您有注释
@Query
,您可以直接在接口方法中添加查询

您的存储库界面如下所示:

import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.stereotype.Repository

@Repository interface CustomerRepo: JpaRepository<CustomResponseEntity, Long> {

  @Query("Select c.name,cp.policuNumber from Customer c left join customer_policy cp on c.groupNumber = cp.groupNumber")
  fun findSomething():
    List<CustomResponseEntity>
}
import org.springframework.data.jpa.repository.JpaRepository
导入org.springframework.stereotype.Repository
@存储库接口CustomerRepo:JpaRepository{
@查询(“从客户c中选择c.name、cp.PolicNumber左加入客户\U策略c.groupNumber=cp.groupNumber上的cp”)
有趣的发现():
列表
}
这里有一个更深刻的解释:

所以结果对象是带有两个结果列的普通旧pojo?什么接口返回类型是interface ReactiveCrudepository{@Query(“从客户c中选择c.name,cp.PolicNumber left join客户_策略c.groupNumber=cp.groupNumber”)fun findSomething():Collection?}我更新了我的答案,并与我找到的解释建立了更好的链接。您还可以使用两个参数定义自定义实体响应(投影)。