Ich verwende in einem meiner Projekte ormlite und ich habe eine Klasse A
mit einem Feld f
von benutzerdefinierten Typ F
und ich habe die Anforderung, dass Feld f
in keiner null sein sollte Fall. Deshalb möchte ich ein neues Objekt der Klasse F instanziiert, wenn das Feld f in der Datenbankdatei NULL istGriff NULL Fall innerhalb sqlArgToJava von benutzerdefinierten persister Klasse
class A {
@DatabaseField(columnName = "xyz", persisterClass = FieldPersister.class)
F f;
public A() {
f = new F();
}
}
sich nach den docs ich eine benutzerdefinierte persister-Klasse FieldPersister
und eine Null-Check-in dort versucht.
class FieldPersister extends StringType {
public Object javaToSqlArg(FieldType fieldType, Object javaObject) {
...
}
public Object sqlArgToJava(FieldType fieldType, Object sqlArg, int columnPos) {
if (sqlArg == null) return new F();
else {
String value = (String) sqlArg;
return new F(value);
}
}
}
Ich habe versucht, das Programm Debuggen und sah, dass es bereits eine Nullprüfung in dem folgenden Verfahren
resultToJava(FieldType fieldType, DatabaseResults results, int columnPos)
Auch zwingende diese Methode nicht das Problem behoben hat, die auf meine Frage führt, ist Wie kann ich mit dieser Situation umgehen, oder fehlt mir ein Teil des Puzzles?
Aktualisierung mit SSCCE:
Ich habe den Beitrag mit einem Testprogramm aktualisiert, sehen, ob es hilft. – calvin