我很难在JPA中加入不相关的领域

我很难在JPA中加入不相关的领域,jpa,spring-data-jpa,native-sql,Jpa,Spring Data Jpa,Native Sql,我在学习JPA的过程中经历了很多事情,但是我对它太不熟悉了,所以我想得到一些建议 我在学习中遇到的问题分为三大类。你能看一下下面的代码吗 @Repository public interface TestRepository extends JpaRepository<TestEntity,Long> { @Query(" SELECT , A.test1 , A.test2 , B.t

我在学习JPA的过程中经历了很多事情,但是我对它太不熟悉了,所以我想得到一些建议

我在学习中遇到的问题分为三大类。你能看一下下面的代码吗

@Repository
public interface TestRepository extends JpaRepository<TestEntity,Long> {
    @Query(" SELECT
             , A.test1 
             , A.test2
             , B.test1 
             , B.test2
             FROM TEST_TABLE1 A
             LEFT JOIN TEST_TABLE2 B
             ON A.test_no = B.test_no
             WHERE A.test3 = ?1   # Here's the first question
             if(VO.test4 is not null) AND B.test4 = ?2") # Here's the second question
    List<Object[] # Here's the third question> getTestList(VO);
}
首先,使用本机sql时是否可以从接收到的VO中提取test3

通常,字符串test1是这样使用的,但我想知道是否还有其他方法

第二,如果可以在VO中进行提取,是否可以根据Test4是否有值在@query中添加查询

第三,如果我使用List,那么执行一个查询的结果是否可以包含在已经创建的实体中,例如TEST_TABLE2中的test1,它不在TEST_TABLE1的实体中

首先,使用本机sql时是否可以从接收到的VO中提取test3?通常,字符串test1是这样使用的,但我想知道是否还有其他方法

是的,这是可能的

必须使用,例如:{[0].test3}等于vo.test3 [0]是带@Query注释的方法的第一个参数,过去

@Query(value = "SELECT a.test1, a.test2, b.test1, b.test2 
FROM test_table1 a 
LEFT JOIN test_table2 b ON a.test_no = b.test_no 
WHERE a.test3 = :#{[0].test3}", nativeQuery = true)
List<Object[]> getList(VO);
第三,如果我使用List,那么执行一个查询的结果是否可以包含在已经创建的实体中,例如TEST_TABLE2中的test1,它不在TEST_TABLE1的实体中

对不起,我不明白第三个问题

也许本教程将帮助您:

SELECT ... FROM table a
LEFT JOIN table b ON a.id = b.id
WHERE a.test3 = :#{[0].test3}
AND (:#{[0].test4} IS NOT NULL AND b.test4 = :#{[0].test4})