JPA @Query查询单个字段和多个字段返回类型
前提
在使用springboot中,需要使用JPQL和SQL去查询记录。
@Query(value = " SELECT id, create_date, channel_id, channel_name, des, discount_amount, order_no, pay_amount, pay_channel, pay_status status, pay_time, reduced_amount, rs_amount, settle_amount, syn_time, total_amount, user_id, rs_reduced_amount, merch_id, product_name, product_id, travel_time, order_type, ticket_no, expire_min FROM sys_order where des = :orderId ", nativeQuery = true)
public List<StOrderSyn> selectBySysOrderId(@Param("orderId") String orderId);
这时候,在实体类StOrderSyn中新增一个字段@Column(name="balance_amount") private Long balanceAmount;
执行代码后报错:balance_amount这个字段不存在
解决
经过查询资料发现:
1.select 获取一整条记录,返回的类型就是对应的实体类或者实体类的集合。
2.当不是全部字段时,返回类型就不能是实体类了。
总结
单个字段单条记录时,返回类型最好用对应字段的类型或者Object。
单个字段多条记录时,返回类型最好用List或者List<字段对应类型>。
多个字段时,不论是多条记录还是单条记录,返回类型都应该是List<Object[]>
整个实体字段,返回类型可以为实体类