Wie Getter und Setter für Feld eine Relation Eins-zu-viele in Grails Domain-Klasse zu überschreiben? Ich weiß, wie man Getter und Setter für Felder, die ein einzelnes Objekt sind, außer Kraft setzt, aber ich habe Probleme mit Collections. Hier ist mein Fall:Override Getter und Setter in Grails Domain-Klasse für die Relation
Ich habe Entity Domain-Klasse, die viele Titel hat. Jetzt möchte ich Getter für Titel überschreiben, um nur Titel mit Flag isActive gleich wahr zu bekommen. Ich habe etwas versucht, aber es funktioniert nicht:
class Entity {
static hasMany = [
titles: Title
]
public Set<Title> getTitles() {
if(titles == null)
return null
return titles.findAll { r -> r.isActive == true }
}
public void setTitles(Set<Title> s) {
titles = s
}
}
class Title {
Boolean isActive
static belongsTo = [entity:Entity]
static mapping = {
isActive column: 'is_active'
isActive type: 'yes_no'
}
}
Vielen Dank für Ihre Hilfe.
Welchen Fehler bekommen Sie? – dmahapatro
Interessiert hinter dieser Anforderung, warum nicht separate Methode dafür verwenden? Wie jetzt, wenn Sie die Fähigkeit hinzufügen müssen, alle Titel abzurufen, müssen Sie eine separate Methode schreiben, die standardmäßig unterstützt wird. –
Hinweis: http://grails.1312388.n4.nabble.com/Customized-getter-td1380706.html#a1380709. Kurz gesagt, stellen Sie sicher, dass Ihre Setter und Getter den Wert nicht ändern oder Hibernate wird verwirrt. –