1.查询结果为各个表各个字段(切记要查出primary key,以防后面要更新该数据)
@SuppressWarnings("unchecked")
@Override
public List<TPMSFine> getAlertFailFines(AlertFinishStatus failAlert) {
String selectFields = "tf.id,tf.txnno,tpmsts.certno,tf.finePayDate,tf.operator,"
+ "tf.amount,tf.indictmentNo,tf.indictmentSendDate,tf.penaltyNoticeNo,tf.penaltyNoticeDate,"
+ "tf.penaltyNoticeNoSec,tf.penaltyNoticeDateSec";
String sql = "SELECT " + selectFields + " FROM " + table(TPMSFine.class) + " tf"
+ " inner join tpmstransaction tpmsts on tpmsts.TRANSACTIONDETAILS_TXNNO = tf.txnno"
+ " where tf.ALERTFINISHSTATUS is not null and tf.ALERTFINISHSTATUS = :alertFinishStatus";
Query query = em.createNativeQuery(sql);
query.setParameter("alertFinishStatus", failAlert.ordinal());枚举类
List<TPMSFine> tpmsFineList = new ArrayList<TPMSFine>();
List<Object[]> resultList = query.getResultList();
for (Object[] objects : resultList) {
TPMSFine tpmsFine = new TPMSFine();
tpmsFine.setId(Long.valueOf(objects[0].toString())); 结果映射,类似JDBC
tpmsFine.setUniqueryCode((String)objects[1]);
tpmsFine.setCertNo(Long.valueOf(objects[2].toString()));
tpmsFine.setFinePayDate((java.util.Date)objects[3]);

本文介绍了如何在Java中使用JPA结合SQL进行复杂查询。通过示例展示了查询结果映射到实体类的不同方法,包括直接结果映射和使用@SqlResultSetMapping注解进行列映射。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



