How do you change the column names for a table generated by a MANY-to-MANY
CMR?

Here's an example of what i've tried:

ejb-jar.xml:

<ejb-relation>
            <ejb-relation-name>User-Roles</ejb-relation-name>
            <ejb-relationship-role>
                
<ejb-relationship-role-name>User-has-multiple-Roles</ejb-relationship-role-name>
                <multiplicity>Many</multiplicity>
                <relationship-role-source>
                    <ejb-name>Users</ejb-name>
                </relationship-role-source>
                <cmr-field>
                    <cmr-field-name>roles</cmr-field-name>
                    <cmr-field-type>java.util.Set</cmr-field-type>
                </cmr-field>
            </ejb-relationship-role>
            <ejb-relationship-role>
                
<ejb-relationship-role-name>Role-Belongs-To-User</ejb-relationship-role-name>
                <multiplicity>Many</multiplicity>
                <relationship-role-source>
                    <ejb-name>Roles</ejb-name>
                </relationship-role-source>
                <cmr-field>
                    <cmr-field-name>users</cmr-field-name>
                    <cmr-field-type>java.util.Set</cmr-field-type>
                </cmr-field>
            </ejb-relationship-role>
        </ejb-relation>

My understanding of how to do this is via this entry in jbosscmp-jdbc.xml:

<ejb-relation>
            <ejb-relation-name>User-Roles</ejb-relation-name>
            <relation-table-mapping>
                <table-name>User_Role</table-name>
            </relation-table-mapping>

            <ejb-relationship-role>
                
<ejb-relationship-role-name>Role-Belongs-To-User</ejb-relationship-role-name>
                <key-fields>
                    <key-field>
                        <field-name>users</field-name>
                        <column-name>user_name</column-name>
                    </key-field>
                </key-fields>
            </ejb-relationship-role>
            <ejb-relationship-role>
                
<ejb-relationship-role-name>User-has-multiple-Roles</ejb-relationship-role-name>
                <key-fields>
                    <key-field>
                        <field-name>roles</field-name>
                        <column-name>role_name</column-name>
                    </key-field>
                </key-fields>
            </ejb-relationship-role>
        </ejb-relation>


But the problem is that jboss complains ~ It doesn't seam to be able to
locate the "users" or "roles" field-name's that i've declared. Here's the
summary error:
[ObjectName: jboss.j2ee:service=EJB,jndiName=myBEAN
 state: FAILED
 I Depend On:
 Depends On Me: org.jboss.deployment.DeploymentException: CMP field for
key not found: field name=roles, ObjectName:
jboss.j2ee:service=EJB,jndiName=myBEAN

with the following exception:

17:34:33,434 WARN  [ServiceController] Problem starting service
jboss.j2ee:service=EJB,jndiName=myBEAN
org.jboss.deployment.DeploymentException: CMP field for key not found:
field name=roles
        at
org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationshipRoleMetaData.loadKeyFields(JDBCRe
lationshipRoleMetaData.java:374)
        at
org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationshipRoleMetaData.init(JDBCRelationshi
pRoleMetaData.java:157)
        at
org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationMetaData.<init>(JDBCRelationMetaData.
java:308)
        at
org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCApplicationMetaData.<init>(JDBCApplicationMet
aData.java:383)
        at
org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCXmlFileLoader.load(JDBCXmlFileLoader.java:75)

        at
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadJDBCEntityMetaData(JDBCStoreManager.j
ava:677)
        at
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.initStoreManager(JDBCStoreManager.java:38
9)
        at
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.start(JDBCStoreManager.java:339)
        at
org.jboss.ejb.plugins.CMPPersistenceManager.start(CMPPersistenceManager.java:198)
        at org.jboss.ejb.EntityContainer.start(EntityContainer.java:376)
        at org.jboss.ejb.Container.invoke(Container.java:793)
        at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1055)
        at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:491)
        at
org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:950)
        at $Proxy6.start(Unknown Source)
        at
org.jboss.system.ServiceController.start(ServiceController.java:384)
        at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284
)
        at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:491)
        at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174)
        at $Proxy224.start(Unknown Source)
        at org.jboss.ejb.EjbModule.startService(EjbModule.java:440)
        at
org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:164)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284
)
        at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:491)
        at
org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:950)
        at $Proxy6.start(Unknown Source)
        at
org.jboss.system.ServiceController.start(ServiceController.java:384)
        at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284
)
        at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:491)
        at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174)
        at $Proxy5.start(Unknown Source)
        at org.jboss.ejb.EJBDeployer.start(EJBDeployer.java:397)
        at org.jboss.deployment.MainDeployer.start(MainDeployer.java:786)
        at org.jboss.deployment.MainDeployer.start(MainDeployer.java:779)
        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:615)
        at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:581)
        at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284
)
        at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:491)
        at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174)
        at $Proxy4.deploy(Unknown Source)
        at
org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:412)
        at
org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:530)
        at
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploym
entScanner.java:202)
        at
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeployme
ntScanner.java:191)

With the <ejb-relationship-role> elements commented out of the
jbosscmp-jdbc.xml, it works fine. It generates a table called USER_ROLE
with these 2 columns: USERS and ROLES, which my dbas can't seam to handle.


Does anyone know how to solve this?

thanks.
..peter




-------------------------------------------------------
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to