El 28/02/2013 16:15, John Huss escribió:
If it's a servlet app, then the runtime is created in CayenneFilter and
bound to the thread for each request and you access it via

WebUtil.getCayenneRuntime(servletContext);


Or you can get a context from the injector if you have bound that to a
thread:

ObjectContext context =
CayenneRuntime.getThreadInjector().getInstance(ObjectContextFactory.class
).createContext();


If not a servlet app, then yeah, I'd just store it in a static variable or
application instance.



On Thu, Feb 28, 2013 at 8:43 AM, Michael Gentry <[email protected]>wrote:

Is there an existing place (class) in 3.1 to stuff a ServerRuntime instance
for global use or is it expected that you'll create a separate class to
hold a static instance variable of ServerRuntime?

Thanks,

mrg


We avoid storing it as a singleton and use the same concept for non web apps using BaseContext <http://cayenne.apache.org/docs/3.1/api/org/apache/cayenne/BaseContext.html>BaseContext.bindThreadObjectContext(context)||
context  = BaseContext.getThreadObjectContext()

So you usually just bind the context on startup and don't need to have write your own singleton for that.

Indeed we made a DAO Template that works in both scenarios to be able to reuse the dao library.




Reply via email to