Hi Mike,

On 27/04/2010 07:26, [email protected] wrote:
> 
>         I'm trying to into integrate Cayenne into a new Click project
> I'm working on and I have a few questions.  If I have a
> DataContextFilter from the extras configured in my web.xml, how does
> that work with CayenneTemplate from the extras?  It looks like
> DataContextFilter is storing the data context in the user's session
> whereas CayenneTemplate is storing it thread local. 


DataContextFilter always binds the DataContext to the current thread, whether 
request or session
scoped. See this line in DataContextFilter:

  // Bind DataContext to the request thread
  BaseContext.bindThreadObjectContext(dataContext);


 Are they mutually
> exclusive?  


Yes, although you might want to customize the CayenneTemplate#getDataContext 
method for your
specific environment. Binding the dataContext to the current thread is well 
suited for web
applications where multiple requests are handed off to each thread. For a Swing 
based application
another strategy might be better suited.


Also, I need to create some utilities that will run outside
> the web application server, but will also access the same tables in the
> DB.  Because of this I wanted to break out my Cayenne DB access stuff
> into a common library, but if I'm using CayenneTemplate as the base for
> my DAO's this won't fly in utility programs, will it?  I looked at the
> source for CayenneTemplate and didn't see any "web specific" code in
> there, but all the stuff from Click is meant only for web use, no?


I don't see any issue if you include click-extras.jar in a utility program and 
use CayenneTemplate
as a base for your DAOs. Alternatively you can copy/paste CayenneTemplate into 
your utility program
and customize it further. You can then include your utility jar inside the web 
application and use
your custom CayenneTemplate as a base service.

Kind regards

Bob

Reply via email to