ich bekomme Fehler beim select max id aus der Tabelle, wenn meine Tabelle nicht Daten
Habe ich select max code von meiner Tabelle arbeiten, wenn Sie über Daten verfügen, aber wenn die Tabelle leer ist, ich habe Fehler wie unten:
Hier kann der code in der Repository:
@Repository("depositRepository")
public interface DepositRepository extends JpaRepository<Deposit,Integer>,
JpaSpecificationExecutor<Deposit> {
@Query("select max(u.code) from Deposit u")
String getMaxCode();
}
Und hier ist der code, den ich call-in-service für bekommen Ergebnis:
String maxCode=depositRepo.getMaxCode();
Bekam ich Fehler, wie ich schon unten erwähnt:
Hibernate:
select
max(deposit0_.code) as col_0_0_
from
rems.tbldeposit deposit0_
20:10:55,182 ERROR [rems.controller.DepositController] java.lang.NullPointerException
- setzen Sie bitte den gesamten StackTrace der exception. Scheint, dass es Problem mit Ihrem code.
- Ich nicht habe-ohne Ausnahme-sonst in der Konsole. außer wie zeige ich also, ich weiß nicht, was zu tun. (-_-)
- Sie müssen handlich ein null-Wert für u zu.code. in oracle könnte man dies tun: select max(nvl(u.code, 0)) von der Kaution u
Du musst angemeldet sein, um einen Kommentar abzugeben.
DBMS gibt null zurück, wenn die Auswahl einer max() aus einem leeren Datensatz.
Es ist schwer zu sagen, ohne zu sehen, mehr code Kontext von Ihrem service-Methode, aber ich nehme an, du bist später ruft eine operation auf der getMaxCode () - Ergebnis, wie maxCode.equals(...) oder maxCode.toString(), die Ihnen eine NullPointerException.
Zu vermeiden, sind die Ausnahme, können Sie entweder ein null-überprüfen Sie die in Ihrer java-code:
oder Sie können zwicken die Abfrage zurückgeben soll ein default-Wert in den Ereignis max(u.code) null ist, wie folgt: