java - Using JTA transaction in JAX-RS ContainerResponseFilter, any side effects? -
i have provider can read entities never write until set @transactionmanagement(transactionmanagementtype.container) on class level , @transactional on overridden filter method.
@provider @priority(value = 1) @transactionmanagement(transactionmanagementtype.container) public class securityusageresponsefilter implements containerresponsefilter { @persistencecontext(unitname = "myapppersistenceunit") private entitymanager entitymanager; @override @transactional public void filter(containerrequestcontext requestcontext, containerresponsecontext responsecontext) throws ioexception { //code updateuserandheaderinformation(id, responsecontext); //code } private void updateuserandheaderinformation(object userid, containerresponsecontext responsecontext) { //this work restrictedusers user = entitymanager.find(restrictedusers.class, userid); //only works when transactions explicitly set user.setlasttransfertoken(newtransfertoken); user.setlastobfuscationid(newobfuscationid); } } my question is: there maybe side effects when filter method transactional? transactions used in service methods, here i'm using provider maybe there different behaviour in background interfere things didn't think yet?
it may work wouldn't that.
your filter should kept lean , these operations should delegated service layer, responsible demarcating transactions.
Comments
Post a Comment