[jboss-user] [EJB/JBoss] - CMR over different datasources with EJB 2.1
PhilC
do-not-reply at jboss.com
Mon Nov 27 11:58:52 EST 2006
Using EJB 2.1, I have 2 CMP Entities persisted on 2 different datasources. Now I want to create a unidirectional many-to-one relationship where the many side sees the one side and the one side is blind. But, I get an EJBException wrapping an SQL error:
| javax.ejb.EJBException: Load relation failed; CausedByException is:
| ORA-00942: table or view does not exist
|
I suspect from reading the JDBCCMRFieldBridge class that JBoss is using the datasource of one side to access the other side.
Here is the JDBCCMRFieldBridge code:
| // Data Source
| if(metadata.getRelationMetaData().isTableMappingStyle())
| {
| dataSource = metadata.getRelationMetaData().getDataSource();
| }
| else
| {
| dataSource = hasForeignKey() ? entity.getDataSource() : relatedEntity.getDataSource();
| }
|
It seems like the choice of datasource is based on having a foreign key or not. How can I define a relationship without foreign keys?
Using xdoclet I defined the relationships this way, using target-XXXX to define the blind side of the relationship
| * @ejb.relation
| * name="Order-Security"
| * role-name="many-Orders-belong-to-one-Security"
| * target-role-name="one-Security-has-multiple-Orders"
| * target-ejb="Security"
| * target-multiple="yes"
| *
| * @jboss.relation
| * fk-constaint="false"
| * fk-column="SECURITY_ID"
| * related-pk-field="securityId"
|
First of all, is CMR over different datasources supported in EJB 2.1? If not, does JBoss offer a work around?
PS: Both entity beans work stand alone. I can execute create and finder method on them. I'm using JBoss 4.0.3SP1.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3988956#3988956
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3988956
More information about the jboss-user
mailing list