Ich habe 2 mrhods save()
und edit()
Einheit. Wenn ich die Entity speichere, überprüfe ich die Datumsüberlappung und, wenn die Datenperiode eindeutig ist - speichere. Dafür benutze ich Orakelverfahren. Wenn die Prozedur> 0 Zeilen zurückgibt, ist dieser Zeitraum nicht eindeutig. Wenn ich Entity editiere - es bereits in db und ich brauche optionale Überprüfung per ID.Wie kann ich optionale Parameter an die Prozedur übergeben?
CallableStatement call = connection.prepareCall("{ ? = call checkDateRangesOverlap(?,?,?,?)}");
call.registerOutParameter(1, Types.INTEGER); // or whatever it is
Date dateStart = Date.from(start.atZone(ZoneId.systemDefault()).toInstant());
Date dateEnd = Date.from(end.atZone(ZoneId.systemDefault()).toInstant());
call.setDate(2, new java.sql.Date(dateStart.getTime()));
call.setDate(3, new java.sql.Date(dateEnd.getTime()));
call.setLong(4, user.getId());
call.setLong(5, id);
call.execute();
aber wenn ich neue Unternehmen schaffen - id ist null
und call.setLong(5, id);
throw Fehler.
Wie kann ich optionale Parameter zur Prozedur übergeben?
was ist die Ausnahme? –
wenn ich spare NEW Entity ID = NULL – user5620472
ja können Sie die Ausnahme bitte teilen? –