2017-10-13 3 views
0

einzelnen Datensatz im Frühjahr Daten JPA zu bekommen habe ich eine Anforderung, die einzelne Datensatz mit Feder Daten PPV zu erhalten, ohne nativen Abfrage mit i nativen Abfrage unter Verwendung von am: -wie ohne Verwendung von nativen Abfrage

@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); 

Dies ist funktioniert, aber wenn ich JPQL benutze und fetch erste 1 Zeile nur JPA verwenden ist nicht in der Lage, Fetch-Schlüsselwort zu erkennen und die Ausnahme zu werfen.

Ich dort jede alternative Möglichkeit, um den einzelnen Datensatz ohne native Abfrage zu bekommen. Jede Hilfe geschätzt.

+0

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

Antwort

-1

Wenn Sie MYSQL verwenden, dann verwenden Sie "Limit 1", wenn Sie Oracle verwenden, dann verwenden Sie "wo Rownum = 1" in der JPQL-Abfrage, die Sie geschrieben haben, sollte das funktionieren.

Orelse können Sie diesen Weg auch tun.

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