我在學習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?
通常,stringtest1是這樣使用的,但是我想知道是否還有其他方法。
第二,如果可以在VO中提取,那么可以根據Test4是否有值在@query中添加查詢嗎?
第三,如果我使用List<Object[]>,執行一個不在已經創建的實體中的查詢的結果(例如,TEST_TABLE2中的test1,它不在TEST_TABLE1的實體中)可以包括在內嗎?,
是的,這是可能的。
您必須使用,例如,
:#{[0].test3}
等于vo.test3
[0]是第一個參數的位置,用@Query注釋的方法的過去你可以使用技巧,例如:
對不起,我不明白第三個問題。
也許本教程可以幫助您:https://www.baeldung.com/jpa-queries-custom-result-with-aggregation-functions