Or detach/clone every persistence objects of Hibernate into genuine POJO
instances via reusing the same classes, and then confine the use of
these POJO&#39;s in the executing threads.  No concurrency issue, nor problems of long conversation pattern since these pojo&#39;s are independent of Hibernate sessions.<br>
<br>(Shameless plug: I use Beanlib to make the cloning trivially easy.)<br>
<br>
Cheers,<br>
Hanson<br><br><div class="gmail_quote">On Thu, Jun 25, 2009 at 4:02 AM, Ashley Williams <span dir="ltr">&lt;<a href="mailto:ashpublic@mac.com">ashpublic@mac.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Many thanks for the help so far on resetting my way of thinking when it comes to concurrency.<br>
<br>
I would like to apply those lessons on my hibernate codebase, which for the uninitiated, consists<br>
of a bunch of java beans style pojos with getters and setters. These are automatically called from the<br>
hibernate api in order to sync with the database rows. As I see it there are a number of options:<br>
<br>
1. This is a case where the domain model is genuinely mutable. Following the path of least<br>
resistance means that I shouldn&#39;t try to bend this domain layer into something it wasn&#39;t supposed<br>
to be and therefore introduce a little concurrency api in order to make it threadsafe.<br>
<br>
2. Manage the lifecycle of the domain objects to ensure they are only ever used locally to a<br>
thread. This means that care would have to taken when for example using the long conversation<br>
pattern, where the session and its domain objects need to outlive the current thread/transaction.<br>
In other words don&#39;t make the domain objects threadsafe but work hard in the rest of the<br>
application that there is never any contention over them.<br>
<br>
3. Consider the domain objects as nothing more than parameter holders and wrap them<br>
inside genuine rich, immutable domain objects.<br>
<br>
I&#39;m sure there are more options and that there is no simple answer, but I would welcome any<br>
insight.<br>
<br>
Thanks<br><font color="#888888">
- Ashley Williams<br>
_______________________________________________<br>
Concurrency-interest mailing list<br>
<a href="mailto:Concurrency-interest@cs.oswego.edu" target="_blank">Concurrency-interest@cs.oswego.edu</a><br>
<a href="http://cs.oswego.edu/mailman/listinfo/concurrency-interest" target="_blank">http://cs.oswego.edu/mailman/listinfo/concurrency-interest</a><br>
</font></blockquote></div><br>