java - Performance on entityManager.refresh() -


i'm having issue entitymanager refresh single entity taking long time, upwards of minute. have screen on user can edit simple record, example change someone's first name. can either save or cancel when done. on cancel action, performing following line if made changes, did not want save, clear changes cached copy of object.

getentitymanager().refresh(getinstance());

this on entityhome bean. have ended doing used

getentitymanager().clear();

which accomplishes same thing me runs in less second.

i using ee5, jdbc connect oracle 11g db, , jta transactions.

does have ideas on why taking long?

refresh() reloads entity database (it performs select , reloads entity). slower clear() clears first-level cache. note if clear() cache , had other entities in it, have merge() them (which implies reload db well).

one minute seems long time simple record reload presume there other factors @ work here, such locking.

anyway, happens because "cancel" button submits form. once form submitted, values copied entity instance , marked dirty. easiest way of avoiding behavior not submit form when pressing "cancel": instead of post using <s:button/> or <s:link/> "cancel" button. works except if submitting changes via ajax, in case entity updated , set dirty.


Comments