2017-12-21 8 views
0

Ich arbeite an mybatis. Ich versuche, unterhalb der Abfrage auszuführen, um das Ergebnis zu erhalten.getSqlSession(). SelectOne() gibt null zurück

<select id="getMaxSeqNumFromTrans" parameterType="com.abc.ContributionsRequestParamDto" resultType="java.lang.Integer" > 
    SELECT MAX(SEQ_NMBR) MAXNUMBER FROM DB2.A_PDC_TRNS WHERE TOKEN_ID = #{tokenID} AND RSLT_TYP = 10 

In Java-Code ich diesen Code verwenden oben query-

Integer maxSeqNumber = getSqlSession().selectOne("getMaxSeqNumFromTrans", contributionsParam); 

Aber dieser Code null zurück zu mir zu laufen. Ich weiß nicht, was hier falsch läuft. Habe ich etwas verpasst?

+0

versuchen, 'SELECT COALESCE (MAX (SEQ_NMBR), 0) MAXNUMBER ...' –

+0

Es funktioniert. Ich danke dir sehr ! – user2998616

+0

das ist schön zu hören, viel Glück :) –

Antwort

0

Sieht aus wie das Problem mit Ihrer Abfrage ist. MAX würde Ihnen null geben, wenn für Ihre WHERE-Klausel keine Zeilen gefunden wurden.

Haben Sie versucht, Ihre Abfrage manuell über ein Tool auf dem Server auszuführen?

+1

Ja. Du hast recht. Ich habe meine Abfrage geändert, wie von @YCF_L vorgeschlagen – user2998616

+0

Großartig. Freut mich das zu hören :) –