<div>
        <div>
                Az archívum kedvéért :)</div>
        <div>
                &nbsp;</div>
        <div>
                Végülis a ModelMapper-ből nem tudtam ezt a működést kierőszakolni, mert nem találtam lehetőséget property-k másolásának kivételkezelésére; nekem kellett volna a Pojo property-jeit végigiterálnom. Így inkább a org.apache.commons.beanutils.BeanUtils csomagot felhasználva írtam egy cirka 40 laza soros merge-ölőt.</div>
        <div>
                &nbsp;</div>
        <div>
                Peresze ezt a megoldást be lehetne csomagolni egy ModelMapper Converter-be, ha kéne a ModelMapper robosztussága.</div>
        <div>
                &nbsp;</div>
        <div>
                &nbsp;</div>
        <div>
                Gábor</div>
        <div>
                &nbsp;</div>
        <div>
                <br />
                Cpt &lt;cpt@freemail.hu&gt; írta:
                <blockquote style="border-left:3px solid lightGray;padding-left:3px;">
                        <div>
                                <div>
                                        Szerintem, egyre gondolunk, csak más szemszögből nézzük a dolgot. Nem JPA-s környezetről van szó (bár, általános a feladat, olyanban is felhasználásra kerül, de ez most lényegtelen). Mindössze annyi kötöttség van napjain keretrendszeri miatt, hogy ha egy &quot;Root&quot; proxy osztályként kötődik valamihez (entity manager-hez vagy bármi máshoz), akkor a kötődés infói ez a tool ne rontsa el. Ha a model objektumfában megvan az update-beli entitás (neve alapján), akkor azt használja; ha nincs, akkor törölje; ha új, akkor állítsa be.</div>
                                <div>
                                        &nbsp;</div>
                                <div>
                                        Nézem a ModelMapper nevű cuccot, elég robosztus, biztos, ki lehet belőle hozni ezt, csak még nem látom, hogyan...</div>
                                <div>
                                        &nbsp;</div>
                                <div>
                                        &nbsp;</div>
                                <div>
                                        köszi!</div>
                                <div>
                                        &nbsp;</div>
                                <div>
                                        <br />
                                        &quot;Gábor Garami&quot; &lt;gabor.garami@hron.me&gt; írta:
                                        <blockquote style="border-left:3px solid lightGray;padding-left:3px;">
                                                A&nbsp;&quot;Root&quot;&nbsp;osztályokat&nbsp;mindig&nbsp;a&nbsp;&quot;model&quot;-ből&nbsp;vegye,&nbsp;feltéve,&nbsp;ha&nbsp;szerepel<br />
                                                az&nbsp;&quot;update&quot;-ben,&nbsp;de&nbsp;minden&nbsp;&quot;Root&quot;-on&nbsp;kívüli&nbsp;adatot&nbsp;pedig&nbsp;az<br />
                                                &quot;update&quot;-ből&nbsp;használjon.<br />
                                                <br />
                                                Szerintem&nbsp;meg&nbsp;kell&nbsp;forditani&nbsp;a&nbsp;gondolatmenetedet.&nbsp;Alapvetoen&nbsp;a&nbsp;model-t<br />
                                                updateled&nbsp;az&nbsp;update-tel,&nbsp;tehat&nbsp;csak&nbsp;azokat&nbsp;az&nbsp;infokat&nbsp;kell&nbsp;venni&nbsp;az<br />
                                                update-bol,&nbsp;amik&nbsp;valtoztak.&nbsp;Az&nbsp;update-be&nbsp;pedig&nbsp;meg&nbsp;kell&nbsp;kotni,&nbsp;hogy<br />
                                                nem&nbsp;kerulhet&nbsp;olyan&nbsp;valtozas,&nbsp;ami&nbsp;a&nbsp;root-ot&nbsp;erintheti.<br />
                                                <br />
                                                <br />
                                                Ami&nbsp;_szerintem_&nbsp;megoldas&nbsp;lehet&nbsp;(ha&nbsp;es&nbsp;amennyiben&nbsp;az&nbsp;&#39;update&#39;&nbsp;pontosan<br />
                                                ugyanolyan&nbsp;osztalyu,&nbsp;mint&nbsp;a&nbsp;&#39;model&#39;,&nbsp;hogy&nbsp;a&nbsp;sima&nbsp;JPA-s&nbsp;entitymanageres<br />
                                                merge&nbsp;elott&nbsp;az&nbsp;update-ben&nbsp;felulvagod&nbsp;azokat&nbsp;az&nbsp;elemeket,&nbsp;amiknek&nbsp;nem<br />
                                                kellene&nbsp;valtozni&nbsp;(igy&nbsp;azok&nbsp;nem&nbsp;is&nbsp;fognak&nbsp;valtozni),&nbsp;utana&nbsp;pedig&nbsp;siman<br />
                                                csinalsz&nbsp;egy&nbsp;merge-t.&nbsp;Marmint,&nbsp;ha&nbsp;JPA&nbsp;kornyezetu&nbsp;a&nbsp;kerdes&nbsp;(undefined,<br />
                                                nem&nbsp;irtad).<br />
                                                <br />
                                                Amennyiben&nbsp;nincs&nbsp;JPA&nbsp;a&nbsp;kozelben,&nbsp;akkor&nbsp;tisztan&nbsp;reflectionnel&nbsp;seem<br />
                                                ordongosseg&nbsp;megoldani,&nbsp;foleg&nbsp;ha&nbsp;a&nbsp;Java&nbsp;Beanekre&nbsp;vonatkozo&nbsp;megkotesek<br />
                                                nagy&nbsp;resze&nbsp;be&nbsp;van&nbsp;tartva&nbsp;(gondolok&nbsp;itt&nbsp;a&nbsp;getFoo/setFoo&nbsp;konvenciokra).<br />
                                                <br />
                                                De&nbsp;esetleg&nbsp;probalhatnad&nbsp;kicsit&nbsp;specifikalni&nbsp;a&nbsp;kornyezetet,&nbsp;lehet,&nbsp;hogy<br />
                                                van&nbsp;benne&nbsp;olyan&nbsp;megoldas,&nbsp;amit&nbsp;te&nbsp;nem&nbsp;ismersz.<br />
                                                <br />
                                                <br />
                                                <br />
                                                Garami&nbsp;Gábor<br />
                                                E-mail:&nbsp;gabor.garami@hron.me<br />
                                                Tel:&nbsp;+36&nbsp;20&nbsp;235&nbsp;9621<br />
                                                MSN:&nbsp;hrgy@vipmail.hu<br />
                                                Skype:&nbsp;hron84<br />
                                                <br />
                                                <br />
                                                2013/9/19&nbsp;Cpt&nbsp;&lt;cpt@freemail.hu&gt;:<br />
                                                &gt;&nbsp;Sziasztok,<br />
                                                &gt;<br />
                                                &gt;<br />
                                                &gt;&nbsp;van&nbsp;egy&nbsp;apró&nbsp;feladat,&nbsp;ami&nbsp;gerincében&nbsp;teljesen&nbsp;általános,&nbsp;itt-ott&nbsp;kis<br />
                                                &gt;&nbsp;specialitással.&nbsp;Találkoztatok&nbsp;már&nbsp;libbel,&nbsp;amit&nbsp;érdemesebb&nbsp;felhasználni,&nbsp;mint<br />
                                                &gt;&nbsp;leprogramozni?<br />
                                                &gt;<br />
                                                &gt;&nbsp;Vannak&nbsp;pojo-k,&nbsp;amiknek&nbsp;van&nbsp;1&nbsp;közös&nbsp;ős&nbsp;osztályuk,&nbsp;legyen&nbsp;&quot;Root&quot;,&nbsp;de<br />
                                                &gt;&nbsp;tetszőleges&nbsp;mélységű&nbsp;leszármaztatás&nbsp;lehet.&nbsp;Ezen&nbsp;kívül&nbsp;már&nbsp;csak&nbsp;az&nbsp;&quot;alap&quot;<br />
                                                &gt;&nbsp;osztályokat&nbsp;tartalmazza,&nbsp;mint&nbsp;String,&nbsp;Integer,&nbsp;Date,&nbsp;stb.&nbsp;Ilyen&nbsp;fa<br />
                                                &gt;&nbsp;struktúrából&nbsp;kettőt&nbsp;kell&nbsp;összemosni,&nbsp;az&nbsp;egyik&nbsp;a&nbsp;&quot;model&quot;,&nbsp;a&nbsp;másik&nbsp;az&nbsp;&quot;update&quot;<br />
                                                &gt;&nbsp;A&nbsp;&quot;Root&quot;&nbsp;osztályokat&nbsp;mindig&nbsp;a&nbsp;&quot;model&quot;-ből&nbsp;vegye,&nbsp;feltéve,&nbsp;ha&nbsp;szerepel&nbsp;az<br />
                                                &gt;&nbsp;&quot;update&quot;-ben,&nbsp;de&nbsp;minden&nbsp;&quot;Root&quot;-on&nbsp;kívüli&nbsp;adatot&nbsp;pedig&nbsp;az&nbsp;&quot;update&quot;-ből<br />
                                                &gt;&nbsp;használjon.&nbsp;Az&nbsp;oka,&nbsp;hogy&nbsp;a&nbsp;&quot;Root&quot;&nbsp;osztályokat&nbsp;a&nbsp;&quot;model&quot;-ből&nbsp;kell&nbsp;venni,&nbsp;az<br />
                                                &gt;&nbsp;az,&nbsp;hogy&nbsp;azok&nbsp;lehetnek&nbsp;proxy&nbsp;osztályok&nbsp;is,&nbsp;amire&nbsp;nincs&nbsp;ráhatásom.<br />
                                                &gt;<br />
                                                &gt;<br />
                                                &gt;&nbsp;köszi,&nbsp;Gábor<br />
                                                &gt;<br />
                                                &gt;&nbsp;_______________________________________________<br />
                                                &gt;&nbsp;Javalist&nbsp;mailing&nbsp;list<br />
                                                &gt;&nbsp;Javalist@lists.javaforum.hu<br />
                                                &gt;&nbsp;http://lists.javaforum.hu/mailman/listinfo/javalist<br />
                                                &gt;<br />
                                                _______________________________________________<br />
                                                Javalist&nbsp;mailing&nbsp;list<br />
                                                Javalist@lists.javaforum.hu<br />
                                                http://lists.javaforum.hu/mailman/listinfo/javalist</blockquote>
                                </div>
                        </div>
                        <div>
                                &nbsp;</div>
                        <br />
                        <br />
                        Szerintem,&nbsp;egyre&nbsp;gondolunk,&nbsp;csak&nbsp;más&nbsp;szemszögből&nbsp;nézzük&nbsp;a&nbsp;dolgot.&nbsp;Nem&nbsp;JPA-s&nbsp;környezetről&nbsp;van&nbsp;szó&nbsp;(bár,&nbsp;általános&nbsp;a&nbsp;feladat,&nbsp;olyanban&nbsp;is&nbsp;felhasználásra&nbsp;kerül,&nbsp;de&nbsp;ez&nbsp;most&nbsp;lényegtelen).&nbsp;Mindössze&nbsp;annyi&nbsp;kötöttség&nbsp;van&nbsp;napjain&nbsp;keretrendszeri&nbsp;miatt,&nbsp;hogy&nbsp;ha&nbsp;egy&nbsp;&amp;quot;Root&amp;quot;&nbsp;proxy&nbsp;osztályként&nbsp;kötődik&nbsp;valamihez&nbsp;(entity&nbsp;manager-hez&nbsp;vagy&nbsp;bármi&nbsp;máshoz),&nbsp;akkor&nbsp;a&nbsp;kötődés&nbsp;infói&nbsp;ez&nbsp;a&nbsp;tool&nbsp;ne&nbsp;rontsa&nbsp;el.&nbsp;Ha&nbsp;a&nbsp;model&nbsp;objektumfában&nbsp;megvan&nbsp;az&nbsp;update-beli&nbsp;entitás&nbsp;(neve&nbsp;alapján),&nbsp;akkor&nbsp;azt&nbsp;használja;&nbsp;ha&nbsp;nincs,&nbsp;akkor&nbsp;törölje;&nbsp;ha&nbsp;új,&nbsp;akkor&nbsp;állítsa&nbsp;be.<br />
                        <br />
                        &amp;nbsp;<br />
                        <br />
                        Nézem&nbsp;a&nbsp;ModelMapper&nbsp;nevű&nbsp;cuccot,&nbsp;elég&nbsp;robosztus,&nbsp;biztos,&nbsp;ki&nbsp;lehet&nbsp;belőle&nbsp;hozni&nbsp;ezt,&nbsp;csak&nbsp;még&nbsp;nem&nbsp;látom,&nbsp;hogyan...<br />
                        <br />
                        &amp;nbsp;<br />
                        <br />
                        &amp;nbsp;<br />
                        <br />
                        köszi!<br />
                        <br />
                        &amp;nbsp;<br />
                        <br />
                        <br />
                        &amp;quot;Gábor&nbsp;Garami&amp;quot;&nbsp;&nbsp;írta:<br />
                        <br />
                        A&amp;nbsp;&amp;quot;Root&amp;quot;&amp;nbsp;osztályokat&amp;nbsp;mindig&amp;nbsp;a&amp;nbsp;&amp;quot;model&amp;quot;-ből&amp;nbsp;vegye,&amp;nbsp;feltéve,&amp;nbsp;ha&amp;nbsp;szerepel<br />
                        az&amp;nbsp;&amp;quot;update&amp;quot;-ben,&amp;nbsp;de&amp;nbsp;minden&amp;nbsp;&amp;quot;Root&amp;quot;-on&amp;nbsp;kívüli&amp;nbsp;adatot&amp;nbsp;pedig&amp;nbsp;az<br />
                        &amp;quot;update&amp;quot;-ből&amp;nbsp;használjon.<br />
                        <br />
                        Szerintem&amp;nbsp;meg&amp;nbsp;kell&amp;nbsp;forditani&amp;nbsp;a&amp;nbsp;gondolatmenetedet.&amp;nbsp;Alapvetoen&amp;nbsp;a&amp;nbsp;model-t<br />
                        updateled&amp;nbsp;az&amp;nbsp;update-tel,&amp;nbsp;tehat&amp;nbsp;csak&amp;nbsp;azokat&amp;nbsp;az&amp;nbsp;infokat&amp;nbsp;kell&amp;nbsp;venni&amp;nbsp;az<br />
                        update-bol,&amp;nbsp;amik&amp;nbsp;valtoztak.&amp;nbsp;Az&amp;nbsp;update-be&amp;nbsp;pedig&amp;nbsp;meg&amp;nbsp;kell&amp;nbsp;kotni,&amp;nbsp;hogy<br />
                        nem&amp;nbsp;kerulhet&amp;nbsp;olyan&amp;nbsp;valtozas,&amp;nbsp;ami&amp;nbsp;a&amp;nbsp;root-ot&amp;nbsp;erintheti.<br />
                        <br />
                        <br />
                        Ami&amp;nbsp;_szerintem_&amp;nbsp;megoldas&amp;nbsp;lehet&amp;nbsp;(ha&amp;nbsp;es&amp;nbsp;amennyiben&amp;nbsp;az&amp;nbsp;&amp;#39;update&amp;#39;&amp;nbsp;pontosan<br />
                        ugyanolyan&amp;nbsp;osztalyu,&amp;nbsp;mint&amp;nbsp;a&amp;nbsp;&amp;#39;model&amp;#39;,&amp;nbsp;hogy&amp;nbsp;a&amp;nbsp;sima&amp;nbsp;JPA-s&amp;nbsp;entitymanageres<br />
                        merge&amp;nbsp;elott&amp;nbsp;az&amp;nbsp;update-ben&amp;nbsp;felulvagod&amp;nbsp;azokat&amp;nbsp;az&amp;nbsp;elemeket,&amp;nbsp;amiknek&amp;nbsp;nem<br />
                        kellene&amp;nbsp;valtozni&amp;nbsp;(igy&amp;nbsp;azok&amp;nbsp;nem&amp;nbsp;is&amp;nbsp;fognak&amp;nbsp;valtozni),&amp;nbsp;utana&amp;nbsp;pedig&amp;nbsp;siman<br />
                        csinalsz&amp;nbsp;egy&amp;nbsp;merge-t.&amp;nbsp;Marmint,&amp;nbsp;ha&amp;nbsp;JPA&amp;nbsp;kornyezetu&amp;nbsp;a&amp;nbsp;kerdes&amp;nbsp;(undefined,<br />
                        nem&amp;nbsp;irtad).<br />
                        <br />
                        Amennyiben&amp;nbsp;nincs&amp;nbsp;JPA&amp;nbsp;a&amp;nbsp;kozelben,&amp;nbsp;akkor&amp;nbsp;tisztan&amp;nbsp;reflectionnel&amp;nbsp;seem<br />
                        ordongosseg&amp;nbsp;megoldani,&amp;nbsp;foleg&amp;nbsp;ha&amp;nbsp;a&amp;nbsp;Java&amp;nbsp;Beanekre&amp;nbsp;vonatkozo&amp;nbsp;megkotesek<br />
                        nagy&amp;nbsp;resze&amp;nbsp;be&amp;nbsp;van&amp;nbsp;tartva&amp;nbsp;(gondolok&amp;nbsp;itt&amp;nbsp;a&amp;nbsp;getFoo/setFoo&amp;nbsp;konvenciokra).<br />
                        <br />
                        De&amp;nbsp;esetleg&amp;nbsp;probalhatnad&amp;nbsp;kicsit&amp;nbsp;specifikalni&amp;nbsp;a&amp;nbsp;kornyezetet,&amp;nbsp;lehet,&amp;nbsp;hogy<br />
                        van&amp;nbsp;benne&amp;nbsp;olyan&amp;nbsp;megoldas,&amp;nbsp;amit&amp;nbsp;te&amp;nbsp;nem&amp;nbsp;ismersz.<br />
                        <br />
                        <br />
                        <br />
                        Garami&amp;nbsp;Gábor<br />
                        E-mail:&amp;nbsp;gabor.garami@hron.me<br />
                        Tel:&amp;nbsp;+36&amp;nbsp;20&amp;nbsp;235&amp;nbsp;9621<br />
                        MSN:&amp;nbsp;hrgy@vipmail.hu<br />
                        Skype:&amp;nbsp;hron84<br />
                        <br />
                        <br />
                        2013/9/19&amp;nbsp;Cpt&amp;nbsp;:<br />
                        &gt;&amp;nbsp;Sziasztok,<br />
                        &gt;<br />
                        &gt;<br />
                        &gt;&amp;nbsp;van&amp;nbsp;egy&amp;nbsp;apró&amp;nbsp;feladat,&amp;nbsp;ami&amp;nbsp;gerincében&amp;nbsp;teljesen&amp;nbsp;általános,&amp;nbsp;itt-ott&amp;nbsp;kis<br />
                        &gt;&amp;nbsp;specialitással.&amp;nbsp;Találkoztatok&amp;nbsp;már&amp;nbsp;libbel,&amp;nbsp;amit&amp;nbsp;érdemesebb&amp;nbsp;felhasználni,&amp;nbsp;mint<br />
                        &gt;&amp;nbsp;leprogramozni?<br />
                        &gt;<br />
                        &gt;&amp;nbsp;Vannak&amp;nbsp;pojo-k,&amp;nbsp;amiknek&amp;nbsp;van&amp;nbsp;1&amp;nbsp;közös&amp;nbsp;ős&amp;nbsp;osztályuk,&amp;nbsp;legyen&amp;nbsp;&amp;quot;Root&amp;quot;,&amp;nbsp;de<br />
                        &gt;&amp;nbsp;tetszőleges&amp;nbsp;mélységű&amp;nbsp;leszármaztatás&amp;nbsp;lehet.&amp;nbsp;Ezen&amp;nbsp;kívül&amp;nbsp;már&amp;nbsp;csak&amp;nbsp;az&amp;nbsp;&amp;quot;alap&amp;quot;<br />
                        &gt;&amp;nbsp;osztályokat&amp;nbsp;tartalmazza,&amp;nbsp;mint&amp;nbsp;String,&amp;nbsp;Integer,&amp;nbsp;Date,&amp;nbsp;stb.&amp;nbsp;Ilyen&amp;nbsp;fa<br />
                        &gt;&amp;nbsp;struktúrából&amp;nbsp;kettőt&amp;nbsp;kell&amp;nbsp;összemosni,&amp;nbsp;az&amp;nbsp;egyik&amp;nbsp;a&amp;nbsp;&amp;quot;model&amp;quot;,&amp;nbsp;a&amp;nbsp;másik&amp;nbsp;az&amp;nbsp;&amp;quot;update&amp;quot;<br />
                        &gt;&amp;nbsp;A&amp;nbsp;&amp;quot;Root&amp;quot;&amp;nbsp;osztályokat&amp;nbsp;mindig&amp;nbsp;a&amp;nbsp;&amp;quot;model&amp;quot;-ből&amp;nbsp;vegye,&amp;nbsp;feltéve,&amp;nbsp;ha&amp;nbsp;szerepel&amp;nbsp;az<br />
                        &gt;&amp;nbsp;&amp;quot;update&amp;quot;-ben,&amp;nbsp;de&amp;nbsp;minden&amp;nbsp;&amp;quot;Root&amp;quot;-on&amp;nbsp;kívüli&amp;nbsp;adatot&amp;nbsp;pedig&amp;nbsp;az&amp;nbsp;&amp;quot;update&amp;quot;-ből<br />
                        &gt;&amp;nbsp;használjon.&amp;nbsp;Az&amp;nbsp;oka,&amp;nbsp;hogy&amp;nbsp;a&amp;nbsp;&amp;quot;Root&amp;quot;&amp;nbsp;osztályokat&amp;nbsp;a&amp;nbsp;&amp;quot;model&amp;quot;-ből&amp;nbsp;kell&amp;nbsp;venni,&amp;nbsp;az<br />
                        &gt;&amp;nbsp;az,&amp;nbsp;hogy&amp;nbsp;azok&amp;nbsp;lehetnek&amp;nbsp;proxy&amp;nbsp;osztályok&amp;nbsp;is,&amp;nbsp;amire&amp;nbsp;nincs&amp;nbsp;ráhatásom.<br />
                        &gt;<br />
                        &gt;<br />
                        &gt;&amp;nbsp;köszi,&amp;nbsp;Gábor<br />
                        &gt;<br />
                        &gt;&amp;nbsp;_______________________________________________<br />
                        &gt;&amp;nbsp;Javalist&amp;nbsp;mailing&amp;nbsp;list<br />
                        &gt;&amp;nbsp;Javalist@lists.javaforum.hu<br />
                        &gt;&amp;nbsp;http://lists.javaforum.hu/mailman/listinfo/javalist<br />
                        &gt;<br />
                        _______________________________________________<br />
                        Javalist&amp;nbsp;mailing&amp;nbsp;list<br />
                        Javalist@lists.javaforum.hu<br />
                        http://lists.javaforum.hu/mailman/listinfo/javalist<br />
                        <br />
                        <br />
                        <br />
                        &amp;nbsp;<br />
                        _______________________________________________<br />
                        Javalist&nbsp;mailing&nbsp;list<br />
                        Javalist@lists.javaforum.hu<br />
                        http://lists.javaforum.hu/mailman/listinfo/javalist</blockquote>
        </div>
</div>
<div>
        &nbsp;</div>