Entschuldige freimatz, deine Antwort hatte ich vorhin übersehen.
Bei Spring4D vorstellig werden, sie mögen doch bitte eine eigene
unit für die Nullable machen?
Darüber habe ich auch schon nachgedacht, wollte aber erstmal sehen, ob es vielleicht eine einfache Lösung gibt, ohne in das Framework einzugreifen.
Ich möchte nochmals darauf hinweisen, dass gerade hier bei der Einhaltung von SoC dieses Problem nicht wirklich existiert, bzw. an nur einer überschaubaren Stelle auftritt.
Die Entity-Klassen für Aurelius (oder jedes andere ORM-Framework) spiegeln 1:1 die
SQL-Tabellen wieder und nur in den eher zufällig seltenen Fällen auch Anwendungs-Klassen.
Anwendungs- und Datenhaltungsklassen sind strikt getrennt.
Ich denke bei meinem Fall geht es gerade um diese "überschaubare" Stelle: eine Import-Klasse, welche aus einer Datei in die Datenbank (sprich ORM) einliest. Diese Klasse muss zwangsläufig das Datenobjekt und somit auch den Aurelius-Nullable kennen. Weiterhin muss der Import bei Bedarf Werte konvertieren können (u.a. in Aurelius-Nullables). Ich möchte gar nicht den Spring Nullable verwenden, jedoch aber den TValue-Helper, welcher sich in der Spring-
Unit befindet. Dummerweise befindet sich in dieser
Unit auch der Spring Nullable.
Somit hat freimatz natürlich Recht: Wenn der Spring Nullable-Typ in einer separaten
Unit liegen würde, hätte ich das Problem nicht.
Hm, so richtig will das nicht mit den generischen Operator für record helper.
Höchstens so ein "stumpfer" Ansatz mit Konvertierungsfunktionen scheint zu kompilieren:
Ja sowas hatte ich auch schon mal vor mir, war aber nicht besonders begeistert und habe es wieder verworfen. Wenn sollte das schon Implicit funktionieren.
Wie gesagt, derzeit funktioniert die Variante mit Aurelius Nullable als letzte
Unit einbinden gut. Mittelfristig werde ich bei Gelegenheit mal bei Spring4D anfragen, ob der Nullable-Type in eine eigene
Unit (so wie bei Aurelius
) wandern könnte.
OT: Da steht doch bald ein neues Release an? Wenn dort einige Major Änderungen gemacht welchen, wäre das ja eine Idee.
Wer sucht, der findet. Wer länger sucht, findet mehr.