如何让春季数据JPA单个记录,而不使用本地查询

如何让春季数据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是无法识别提取关键字和抛出异常。

我有任何替代方式来获取单个记录,而不使用赞赏本地查询。任何帮助。

+0

https://docs.oracle.com/javaee/7/api/javax/persistence/Query.html#setMaxResults-int- –

如果您正在使用,如果你使用的是Oracle,然后使用MYSQL,然后使用“限制1”“这里的rownum = 1”的JPQL查询你写的,应该工作。

否则容易就可以做到这一点的方式也。

Query query=entityManager.createNativeQuery(string sql); 
query.getMaxResults(1);