cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Borut Bolčina <>
Subject Re: Old web application needs a second database
Date Mon, 03 May 2010 12:12:09 GMT
Thanks for quick response,

Why 2 configuration instances? There will be cayenne.xml (with node A) and
my-cayenne.xml (with node A and B) on the classpath. Is that why? Would it
be more convenient if my-cayenne.xml only consist of node B?

I am not sure how to initialize.


2010/5/3 Andrus Adamchik <>

> "Default" refers to a "default domain" within a single configuration
> instance. You will be working with 2 configuration instances, so both will
> have a "default domain". This also means that your old code can stay
> unchanged, while the new application won't be able to use a static method
> for DataContext creation (either with domain name or without it). Instead
> you will need to write your own factory method that gets a hold of "conf",
> gets its default domain, and creates a context from it.
> Andrus
> On May 3, 2010, at 2:26 PM, Borut Bolčina wrote:
>  Hello,
>> Our old large web application uses one database and there are a large
>> number
>> of DataContext.createDataContext(); statements all over the web
>> application
>> itself and jars it depends on.
>> Now there is a need to access another database. Currently the
>> Configuration
>> gets initialized with the first call of createDataContext - there is no
>> special class which initializes cayenne eagerly. All defaults.
>> Reading the API (
>> )
>> there is a sentence:
>> "Factory method that creates and returns a new instance of DataContext
>> based
>> on default domain."
>> What is the default domain? I can't find anything in the modeler or in the
>> cayenne xml configuration file to mark one node as default.
>> Currently the cayenne.xml comes from one of the external jars, not the web
>> application itself. Now I will have to create a manually crafted
>> my-cayenne.xml configuration file which has another data node and
>> initialize
>> it with something like:
>> DefaultConfiguration conf = new DefaultConfiguration("my-cayenne.xml");
>> But I suspect I would have to find all occurances of createDataContext()
>> and
>> replace it with createDataContext("old-node-name"). I would really like to
>> avoid that!
>> Instead, can I just leave the access code to "old" database as is and only
>> create data context for the new database with
>> createDataContext("my-new-node-name")?
>> -Borut

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message