java - How to know an object has changed compared to database -


i need know if fields of model object has been changed before save because need compare new values old ones.

i can't touch model classes generated.

my problem whenever change object in controller , check database have object stored before save modified object, returned object database "same" modified object.

i'm using play! 1.2.7 , have :

class mymodel extends model {     public string label; }  class mymodels extends controller {      public static void save(long id) {         mymodel m = mymodel.findbyid(id); // @ point m.label "original"          m.label = "changed !";          mymodel m2 = mymodel.findbyid(id); // m2.label "changed !" should "original", shouldn't ?      } } 

maybe question : how force jpa entitymanager database real instead of returning object context ? seems real problem here.

solution

so final solution :

class mymodels extends controller {      public static void save(long id) {         mymodel m = mymodel.findbyid(id); // @ point m.label "original"          m.label = "changed !";         mymodel m2;         jpaplugin.starttx(false);         try {             m2 = mymodel.findbyid(id); m2.label "original"         } {             jpaplugin.closetx(false);         }     } } 

also way achieve create new entitymanager :

entitymanager manager = jpa.entitymanagerfactory.createentitymanager(); // set new entitymanager like... manager.setproperty("org.hibernate.readonly", true); query q = manager.createquery("select m mymodel m id = :id"); q.setmaxresults(1); q.setparameter("id", m.getbaseid());  mymodel m2 = (mymodel) q.getresultlist().get(0); 

to force hibernate start new transaction in playframework , give new entity manager return object in database , not reference it, need ask play framework start new transaction through jpaplugin.

jpaplugin.starttx(false); try {     // code } {     jpaplugin.closetx(false); } 

see javadoc of starttx , closetx


Comments

Popular posts from this blog

javascript - Google App Script ContentService downloadAsFile not working -

javascript - Function overwritting -

c# - Exception when attempting to modify Dictionary -