Featured post
java - Why does JDO think this detached object is clean? -
i trying learn jdo (and @ same time gae , spring intricacies) creating small web app, , having trouble getting updated domain objects persist database. grab entity db , detach can show user , allow them change it. once user has made changes , posts form app, again grab entity db (detached), update properties, , call pm.makepersistent()
. abbreviated code follows:
user domain object:
@persistencecapable(detachable="true") public class user extends baseentity { @persistent private string firstname = ""; @persistent private string middleinitial = ""; @persistent private string lastname = ""; }
dao read method:
public user read(key key) throws dataexception { persistencemanager pm = pmf.get().getpersistencemanager(); user pkg, detached = null; try { pkg = (user) pm.getobjectbyid(user.class, key); detached = pm.detachcopy(pkg); detached.setisalreadyindb(true); } catch (exception e) { throw new dataexception("an error occured trying read user object. details:\n" + e.getmessage()); } { pm.close(); } return detached; }
dao update method:
private void update(user pkg) throws dataexception { persistencemanager pm = pmf.get().getpersistencemanager(); transaction tx = pm.currenttransaction(); try { tx.begin(); pm.makepersistent(pkg); tx.commit(); } { if (tx.isactive()) tx.rollback(); pm.close(); } }
now when down update method, i've proven myself i'm working same object read via inspecting hashcode()
, i've changed value using domain object's setter method, i've printed changed value console make sure it's getting done, , jdohelper.isdirty()
still returns false, , therefore none of changes persisted database. thoughts on i'm missing or if i'm approaching wrong angle? thank helping out jdo beginner!
jdohelper.isdirty managed objects. detached object not managed. datanucleus provides helper method of own dirty fields while detached since logic implementation-specific string[] dirtyfieldnames = nucleusjdohelper.getdetachedobjectdirtyfields(obj, pm);
- Get link
- X
- Other Apps
Comments
Post a Comment