> I've been assembling an app using OpenJPA 1.2.1 for a few weeks now.
> I've just come to the conclusion that the app is going to require
> reading data from more than one database datasource.  One user schema
> has most of the tables, but another user has some other tables.  There
> are some references between those groups of tables.
> 
> There's no way to specify multiple datasources in a single persistence
> unit, but I suppose I could implement multiple persistence units.  Is it
> possible to have an entity from one persistence unit reference an entity
> from another persistence unit?

I don't think there is a possibility to have an entity from one persistence 
unit reference an entity from another persistence unit.

It is my understanding that your tables reside in multiple schemas and you are 
able to perform joins between tables from different schemas at the SQL level. 
If this is the case, you can take advantage of orm.xml and annotations - they 
allow you to specify a schema for each table, for example:

@Table(name="CUST", schema="RECORDS")

Another idea is to check whether your database allows creation of 
synonyms/aliases. For example, with Oracle you should be able to execute DDL 
like:

create synonym CUST for OAK.CUST;

Then, you can reference table CUST residing in schema OAK just as CUST and 
don't need to specify schemas in your entity mapping. Possibly, you might need 
to modify user privileges in the database.

Regards,
Milosz

Reply via email to