2013-06-18 19 views
5

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.

+0

Welchen Fehler bekommen Sie? – dmahapatro

+1

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. –

+0

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. –

Antwort

4

Benötigen Sie die Referenz Set<Title> titles.

class Entity { 
    Set<Title> titles 

    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 
    } 
} 
+0

Setter sollte auch geändert werden in: öffentliche void setTitles (Set s) { titles = s; } Und dann funktioniert alles gut. – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/1793757/">kpater87</a></span> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">@ kpater87 Korrekt danke. Ich habe nur die Frage von Ihnen kopiert, um zu zeigen, was Sie eigentlich tun müssen. Aktualisiere die Frage auch. – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/2051952/">dmahapatro</a></span> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">Frage aktualisiert. Danke für die Hilfe. – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/1793757/">kpater87</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4319274062" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">Verwandte Themen</div> <ul class="relative_list"> <li> 1. <a href="http://de.voidcc.com/question/p-yjlsgpyt-g.html" target="_blank" title="-Code Layout für die Getter und Setter"> -Code Layout für die Getter und Setter </a> </li> <li> 2. <a href="http://de.voidcc.com/question/p-ovtxnama-s.html" target="_blank" title="Vorlagen für Setter und Getter"> Vorlagen für Setter und Getter </a> </li> <li> 3. <a href="http://de.voidcc.com/question/p-zuitqeje-bq.html" target="_blank" title="Verwenden Getter und Setter in Grails oder nicht?"> Verwenden Getter und Setter in Grails oder nicht? </a> </li> <li> 4. <a href="http://de.voidcc.com/question/p-azxlrecw-bn.html" target="_blank" title="Java Getter und Setter"> Java Getter und Setter </a> </li> <li> 5. <a href="http://de.voidcc.com/question/p-rxeatxvl-cb.html" target="_blank" title="Lua Getter und Setter"> Lua Getter und Setter </a> </li> <li> 6. <a href="http://de.voidcc.com/question/p-gjqvglvz-m.html" target="_blank" title="Dokumentieren Getter und Setter"> Dokumentieren Getter und Setter </a> </li> <li> 7. <a href="http://de.voidcc.com/question/p-trbvcefy-r.html" target="_blank" title="Getter und Setter Stil"> Getter und Setter Stil </a> </li> <li> 8. <a href="http://de.voidcc.com/question/p-vlmvedet-bg.html" target="_blank" title="Getter und Setter für Generics über WCF"> Getter und Setter für Generics über WCF </a> </li> <li> 9. <a href="http://de.voidcc.com/question/p-hyglbosw-k.html" target="_blank" title="Schreiben Getter und Setter für BOOL-Variable"> Schreiben Getter und Setter für BOOL-Variable </a> </li> <li> 10. <a href="http://de.voidcc.com/question/p-hnzjwsuf-dz.html" target="_blank" title=""Instanzweite" Getter/Setter für die Klasse TypeScript?"> "Instanzweite" Getter/Setter für die Klasse TypeScript? </a> </li> <li> 11. <a href="http://de.voidcc.com/question/p-cfnbbnqt-dc.html" target="_blank" title="Lambda für Getter und Setter der Immobilie"> Lambda für Getter und Setter der Immobilie </a> </li> <li> 12. <a href="http://de.voidcc.com/question/p-hvognxlu-q.html" target="_blank" title="scheitern die "Getter und Setter sind böse" für die Ansichtsebene?"> scheitern die "Getter und Setter sind böse" für die Ansichtsebene? </a> </li> <li> 13. <a href="http://de.voidcc.com/question/p-erpdcyvg-br.html" target="_blank" title="Java Kommentar für Getter und Setter-Methode"> Java Kommentar für Getter und Setter-Methode </a> </li> <li> 14. <a href="http://de.voidcc.com/question/p-ohruivlq-bc.html" target="_blank" title="Getter/Setter in Java"> Getter/Setter in Java </a> </li> <li> 15. <a href="http://de.voidcc.com/question/p-wforwzcl-by.html" target="_blank" title="Override Setter in Subklasse"> Override Setter in Subklasse </a> </li> <li> 16. <a href="http://de.voidcc.com/question/p-ceqwucfz-ca.html" target="_blank" title="überschreiben geerbte Getter/Setter"> überschreiben geerbte Getter/Setter </a> </li> <li> 17. <a href="http://de.voidcc.com/question/p-pbzqcnsg-x.html" target="_blank" title="iPhone: Primitive Getter und Setter"> iPhone: Primitive Getter und Setter </a> </li> <li> 18. <a href="http://de.voidcc.com/question/p-fiusaqru-ea.html" target="_blank" title="PhpStorm - Einstellung Getter und Setter"> PhpStorm - Einstellung Getter und Setter </a> </li> <li> 19. <a href="http://de.voidcc.com/question/p-vgksivwr-b.html" target="_blank" title="Python: Generische Getter und Setter"> Python: Generische Getter und Setter </a> </li> <li> 20. <a href="http://de.voidcc.com/question/p-mwkhofac-cw.html" target="_blank" title="Typescript Getter und Setter Fehler"> Typescript Getter und Setter Fehler </a> </li> <li> 21. <a href="http://de.voidcc.com/question/p-scrimfdn-w.html" target="_blank" title="Wie funktionieren Getter und Setter?"> Wie funktionieren Getter und Setter? </a> </li> <li> 22. <a href="http://de.voidcc.com/question/p-rgakivua-bp.html" target="_blank" title="Schnittstellen mit verschiedenen Getter und Setter für die gleiche propertie"> Schnittstellen mit verschiedenen Getter und Setter für die gleiche propertie </a> </li> <li> 23. <a href="http://de.voidcc.com/question/p-vsjgezaz-dc.html" target="_blank" title="Redundanter Code in Getter und Setter"> Redundanter Code in Getter und Setter </a> </li> <li> 24. <a href="http://de.voidcc.com/question/p-upurrnbi-dq.html" target="_blank" title="Sind "Getter" und "Setter" in JavaScript notwendig?"> Sind "Getter" und "Setter" in JavaScript notwendig? </a> </li> <li> 25. <a href="http://de.voidcc.com/question/p-creisngh-bn.html" target="_blank" title="Scala Getter und Setter in Java-Klasse"> Scala Getter und Setter in Java-Klasse </a> </li> <li> 26. <a href="http://de.voidcc.com/question/p-vxbakmas-s.html" target="_blank" title="Objective-C Getter/Setter"> Objective-C Getter/Setter </a> </li> <li> 27. <a href="http://de.voidcc.com/question/p-rdgxheak-dh.html" target="_blank" title="TypeScript Getter Setter Konvention"> TypeScript Getter Setter Konvention </a> </li> <li> 28. <a href="http://de.voidcc.com/question/p-hbduacbo-bh.html" target="_blank" title="Setter und Getter in JaCoCo-Code ausschließen"> Setter und Getter in JaCoCo-Code ausschließen </a> </li> <li> 29. <a href="http://de.voidcc.com/question/p-mejmfhgp-z.html" target="_blank" title="Erzeuge Getter und Setter in NetBeans"> Erzeuge Getter und Setter in NetBeans </a> </li> <li> 30. <a href="http://de.voidcc.com/question/p-eofnahhl-bc.html" target="_blank" title="Javascript Getter/Setter in IE?"> Javascript Getter/Setter in IE? </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515422091"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> Letzte Frage </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://de.voidcc.com/question/p-zznrrnrx-na.html" target="_blank" title="Label-Eigenschaften der Tabellenansicht Zelle abhängig von Daten aktualisieren"> Label-Eigenschaften der Tabellenansicht Zelle abhängig von Daten aktualisieren </a> </li> <li class="side_article_list_item"> 2. <a href="http://de.voidcc.com/question/p-yyypiuhv-ok.html" target="_blank" title="Ausgabe Umgebungsvariable JAVA_HOME Hinzufügen Hadoop-env, sh-Datei mit sed"> Ausgabe Umgebungsvariable JAVA_HOME Hinzufügen Hadoop-env, sh-Datei mit sed </a> </li> <li class="side_article_list_item"> 3. <a href="http://de.voidcc.com/question/p-nigohyxa-oc.html" target="_blank" title="Determinante einer symmetrischen Matrix in Eigen3"> Determinante einer symmetrischen Matrix in Eigen3 </a> </li> <li class="side_article_list_item"> 4. <a href="http://de.voidcc.com/question/p-pcpeofiw-oc.html" target="_blank" title="Zugriff auf ein Objekt in PHP"> Zugriff auf ein Objekt in PHP </a> </li> <li class="side_article_list_item"> 5. <a href="http://de.voidcc.com/question/p-thkdlhbm-od.html" target="_blank" title="Wie wird die Klasse "QuoteClientFactory" nicht als Defined in pycharm verstanden?"> Wie wird die Klasse "QuoteClientFactory" nicht als Defined in pycharm verstanden? </a> </li> <li class="side_article_list_item"> 6. <a href="http://de.voidcc.com/question/p-evlvlrip-oc.html" target="_blank" title="UWP SQLite - Ich kann keine .db Datei finden/erstellen"> UWP SQLite - Ich kann keine .db Datei finden/erstellen </a> </li> <li class="side_article_list_item"> 7. <a href="http://de.voidcc.com/question/p-xyxngwlh-od.html" target="_blank" title="Client-Daten werden nicht aktualisiert von Socket.io"> Client-Daten werden nicht aktualisiert von Socket.io </a> </li> <li class="side_article_list_item"> 8. <a href="http://de.voidcc.com/question/p-netlhdhm-oe.html" target="_blank" title="Listet Daten in einer anderen Liste in RecyclerView"> Listet Daten in einer anderen Liste in RecyclerView </a> </li> <li class="side_article_list_item"> 9. <a href="http://de.voidcc.com/question/p-gseoqeyj-oe.html" target="_blank" title="Machen Sie eine ansprechende Bild neben einem Text für kleinere Bildschirme"> Machen Sie eine ansprechende Bild neben einem Text für kleinere Bildschirme </a> </li> <li class="side_article_list_item"> 10. <a href="http://de.voidcc.com/question/p-glkezneu-om.html" target="_blank" title="python3 - Typeerror: kann nicht Bytes concat auf str"> python3 - Typeerror: kann nicht Bytes concat auf str </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> Verwandte Themen</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://de.voidcc.com/question/p-yjlsgpyt-g.html" target="_blank" title="-Code Layout für die Getter und Setter"> -Code Layout für die Getter und Setter </a> </li> <li class="side_article_list_item"> 2. <a href="http://de.voidcc.com/question/p-ovtxnama-s.html" target="_blank" title="Vorlagen für Setter und Getter"> Vorlagen für Setter und Getter </a> </li> <li class="side_article_list_item"> 3. <a href="http://de.voidcc.com/question/p-zuitqeje-bq.html" target="_blank" title="Verwenden Getter und Setter in Grails oder nicht?"> Verwenden Getter und Setter in Grails oder nicht? </a> </li> <li class="side_article_list_item"> 4. <a href="http://de.voidcc.com/question/p-azxlrecw-bn.html" target="_blank" title="Java Getter und Setter"> Java Getter und Setter </a> </li> <li class="side_article_list_item"> 5. <a href="http://de.voidcc.com/question/p-rxeatxvl-cb.html" target="_blank" title="Lua Getter und Setter"> Lua Getter und Setter </a> </li> <li class="side_article_list_item"> 6. <a href="http://de.voidcc.com/question/p-gjqvglvz-m.html" target="_blank" title="Dokumentieren Getter und Setter"> Dokumentieren Getter und Setter </a> </li> <li class="side_article_list_item"> 7. <a href="http://de.voidcc.com/question/p-trbvcefy-r.html" target="_blank" title="Getter und Setter Stil"> Getter und Setter Stil </a> </li> <li class="side_article_list_item"> 8. <a href="http://de.voidcc.com/question/p-vlmvedet-bg.html" target="_blank" title="Getter und Setter für Generics über WCF"> Getter und Setter für Generics über WCF </a> </li> <li class="side_article_list_item"> 9. <a href="http://de.voidcc.com/question/p-hyglbosw-k.html" target="_blank" title="Schreiben Getter und Setter für BOOL-Variable"> Schreiben Getter und Setter für BOOL-Variable </a> </li> <li class="side_article_list_item"> 10. <a href="http://de.voidcc.com/question/p-hnzjwsuf-dz.html" target="_blank" title=""Instanzweite" Getter/Setter für die Klasse TypeScript?"> "Instanzweite" Getter/Setter für die Klasse TypeScript? </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://de.voidcc.com/contact">Sprechen Sie uns an</a></li> <li>© 2020 DE.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>