如何让春季数据JPA单个记录,而不使用本地查询
问题描述:
我有一个要求使用弹簧数据JPA以获得单个记录不使用我使用下面的本机查询机查询: -如何让春季数据JPA单个记录,而不使用本地查询
@Query(value="select ET.SOURCE_URI, ET.URI, ET.DATA_SRC, ET.PRCSSR, ET.STAT_CD, ET.TXN_DT, ET.DR_CR_CD ,ET.ORIGINAL_CURR_AMT, ET.UNIQUE_INV_NUM ,ET.CREATED_DT_TM ," +
"ET.CREATED_BY_USER_ID, " +
"ET.LAST_MOD_DT_TM ,ET.LAST_MOD_USER_ID " +
"from ENH_DATA_USER.ENH_TXN ET ,CDF3DBA.FIN_TXN FT where ET.unique_inv_num = FT.unique_inv_num " +
"and to_date(ET.TXN_DT) between to_date(FT.TXN_DT)-3 and to_date(FT.TXN_DT) +3 " +
"and ET.ORIGINAL_CURR_AMT = FT.ORIGINAL_CURR_AMT and ET.dr_cr_cd = FT.dr_cr_cd and fin_txn_id=? order by ET.TXN_DT asc fetch first 1 row only" , nativeQuery = true)
EnhancedFinancialTransaction findMatchableEnhancedDataBasedOnFinTxnId(@Param(value = "financialTransactionId") long financialTransactionId);
这是工作,但如果我使用JPQL和使用取第一排1只JPA是无法识别提取关键字和抛出异常。
我有任何替代方式来获取单个记录,而不使用赞赏本地查询。任何帮助。
答
如果您正在使用,如果你使用的是Oracle,然后使用MYSQL,然后使用“限制1”“这里的rownum = 1”的JPQL查询你写的,应该工作。
否则容易就可以做到这一点的方式也。
Query query=entityManager.createNativeQuery(string sql);
query.getMaxResults(1);
https://docs.oracle.com/javaee/7/api/javax/persistence/Query.html#setMaxResults-int- –