I am using Cayenne with Wicket, and am using the servlet filter described here
http://cayenne.apache.org/doc30/web-applications.html to bind a DataContext to requests. I understand this occurs per session, so subsequent requests within the session are associated to the same DataContext, which is fine. However, If I understand correctly, doing a commit against a DataContext will persist _all_ objects associated to that context. If for instance, I am using Cayenne objects to accumulate data, but I do not want to persist these objects (eg because they have not reached a consistent state) but I _do_ want to save some other object, then calling commit to save this latter object will save everything, including data that was not ready to be persisted. I am not sure exactly what pattern I should be using with Cayenne. Should Cayenne objects be exposed beyond the persistent layer? I am considering using a Data Transfer Object pattern, whereby Cayenne objects only exist at the data layer, and data is exposed to the rest of the application via data transfer objects, which are a parallel structure of POJO's. In the case of Wicket, this has the additional benefit of solving potential problems with serialization that may have been a problem with Cayenne objects. So, in summary, what is the correct usage of Cayenne? Is the DTO pattern I have mentioned a reasonable approach? If DTO is a good path, should I be using the 'cgen' maven task to generate POJO's? I have searched for suitable velocity templates to be used with the 'cgen' task but have found none. Should I write my own or is something planned within the Cayenne project along these lines? -- View this message in context: http://cayenne.195.n3.nabble.com/commit-all-objects-temporary-objects-POJO-s-DTO-tp2870230p2870230.html Sent from the Cayenne - User mailing list archive at Nabble.com.
