Thanks, but I am not sure whether this is what I need.
I have hundreds of MS Access Database files (*.mdb), which I need to process in a single run of my program. Obviously I am using the JdbcOdbc bridge, which is working fine with Cayenne so far. My intention is to create a single ServerRuntime and then switch the data source dynamically for every file.
This used to be possible with 3.0 according to the FAQ entry - is it no longer possible with 3.1 ?
Thanks, Wernke On 26/05/2011 15:25, Andrus Adamchik wrote:
Yeah, the Wiki page refers to Cayenne 3.0 and earlier. In 3.1 it is much easier and can be done via a DI container. And you don't have to remember all the classes that might use the DataSource. So you would create a custom module, bind a custom DataSourceFactory, and pass it to ServerRuntime constructor: Module m = new Module() { public void configure(Binder binder) { binder.bind(DataSourceFactory.class).to(MyDataSourceFactory.class); } }; ServerRuntime r = new ServerRuntime("cayenne-myconfig.xml", m); On May 26, 2011, at 6:19 AM, Wernke zur Borg wrote:Hi all, I am referring to FAQ "Setting Database Connection" here: https://cwiki.apache.org/CAY/setting-database-connection.html Firstly, in 3.1 the SharedConfiguration no longer exists, so we have to use the ServerRuntime instead: ServerRuntime runtime = ...; DataDomain domain = runtime.getDataDomain(); DataNode node = domain.getNode("DB1"); node.setDataSource(dataSource); However, this setting does not have the desired effect. When the connection to the database is established, still the original definition from the config file is taken. I have traced down this problem and found that the DataNode has a DbAdapter, which has its own DataSource object. This gets set in the ServerRuntime.getDataDomain() call above. The only way I found around this is by explicitly creating a new adapter with my data source: node.setAdapter(new AutoAdapter(dataSource)); However, the AutoAdapter default constructor is deprecated, and I could not find an easy way to use the recommended method with a DbAdapterFactory. Any ideas? Thanks for any hint. Wernke
