Spring Data Jpa 方法是这样的:
@Query("select pb.id,pp.max_borrow_amt,pp.min_borrow_amt
from product_loan_basic pb left join product_loan_price pp on pb.code=pp.product_code
where pb.code IN(?1) and pb.status='publish' order by ?2 ",
nativeQuery = true)
List<Object[]> findByCodesIn(List<String> codes,String orderby);
Run Code Online (Sandbox Code Playgroud)
那么 order by 是“ max_borrow_amt desc ”,但这是无效的。
列表是无序的。
java代码:
p.setCode((String) fileds[1]);
p.setTitle((String) fileds[2]);
p.setLogo((String) fileds[3]);
p.setMaxBorrowAmt((Integer) fileds[4]);
p.setMinBorrowAmt((Integer) fileds[5]);
Run Code Online (Sandbox Code Playgroud)
fields[] 是对象数组,它由 Spring-Data-JPA 创建,用于从 3 个不同的表中选择某些内容;
@Query(
value="select a.id,a.code,b.title,b.logo,c.max from tableA a left join TableB b left join TableC c where ... ",
nativeQuery = true
)
List<Object[]> findSomething();
Run Code Online (Sandbox Code Playgroud)
发现错误警告:
方法访问具有常量索引的列表或数组
此方法使用常量整数索引访问数组或列表。通常,这是打算使用循环变量的拼写错误。然而,如果特定的列表索引意味着不同的特定事物,那么也许用具有有意义的访问器的一流对象替换列表将使代码不那么脆弱。
我应该如何修复这个错误?