Ich versuche nicht Nullable Getter mit Nullable Setter und Nullable-Feld zu implementieren.Nullable-Feld mit nicht Nullable Getter
- Feld
parent
kann null sein, was bedeutet, dass die Mutterthis
ist. Wenn das übergeordnete Element nicht null ist, ist das übergeordnete Element derparent
-Wert. - Getter nicht-NULL-Werte zulässt, wie es gibt entweder
this
oderparent
- Setter kann NULL festlegbaren Wert eingestellt, wie es die aktuellen übergeordneten entfernen kann.
Ich versuchte dies:
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "parent_id")
var _parent: T? = null
var parent: T
get() = if (isParent) this as T else _parent!!
set(value) {
_parent = if (value == null) null else value.parent
}
Ich mag nicht die _parent
Variable, sondern auch ist es nicht mit dem Setter zu helfen, weil es immer noch nicht-nullable als parent: T
ist, so dass die Lösung funktioniert nicht.
Ich weiß nicht, was ORM Sie verwenden, aber die Chancen sind, dass es diese abstrakte Klasse/Schnittstelle erweitert/implementiert, so dass "Eltern" nur eine andere Eigenschaft sein wird. Sie sollten "Eltern" besser als Erweiterungseigenschaft definieren, wenn Sie eine benutzerdefinierte Logik bereitstellen möchten. –