Stephen, sadly, I already do have that tag. I did code a workaround, by renaming the methods from getAccountObjs to getAccounts. Of course, that's cheating really!
Here's the relevant bits of source code for PersonBean: /** * @ejb.interface-method * * @ejb.relation * name="t_account-t_person" * role-name="t_person-has-t_accounts" * * @jboss.relation-table * table-name="T_ACCOUNT_PERSON" * * @jboss.relation * fk-constraint="true" * fk-column="T_ACCOUNT_ID" * related-pk-field="accountId" */ public abstract Collection getAccounts(); And here's the code from the AccountBean: /** * @ejb.interface-method * * @ejb.relation * name="t_account-t_person" * role-name="t_account-has-t_persons" * * @jboss.relation-table * table-name="T_ACCOUNT_PERSON" * * @jboss.relation * fk-column="T_PERSON_ID" * related-pk-field="personId" */ public abstract Collection getPersonObjs(); Ciao, Jonathan O'Connor XCOM Dublin Stephen Coy <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 07.08.2003 15:18 Please respond to jboss-user To: [EMAIL PROTECTED] cc: Subject: Re: [JBoss-user] JBoss Error in generated SQL for finder (Sybase restriction) You need the @jboss.relation-table (0..1) tag associated with the other account<->person CMR tags. Sybase is not alone with this restriction - Oracle has it as well - 32 character identifiers. Steve Coy On Thursday, August 7, 2003, at 09:39 PM, Jonathan.O'[EMAIL PROTECTED] wrote: > Well, finally I've hit upon a real JBoss problem (we're using JBoss > 3.0.6 > with Sybase 12.0 and the JDBC driver is JConnect2 version 5.5). > > We have a finder on one of our entity beans. It's declared as such: > * @ejb.finder > * signature="java.util.Collection > findCardsForPersonAndAccounts(java.lang.Long personId)" > * result-type-mapping="Local" > * method-intf="LocalHome" > * query="SELECT DISTINCT OBJECT(c) FROM T_Card c, T_Person p, IN > (p.accountObjs) accounts WHERE c.cardHolder.personId=?1 OR > (p.personId=?1 AND c MEMBER OF accounts.cardObjs)" > * > > A T_Card has one T_Person who is the card holder. An account can have > many > cards, and a person can have many accounts. The problem is SQL > generated > needs a name for the account-person relationship and it generates this > very long name "t5_p_accountObjs_RELATION_TABLE", which Sybase does > not like. > > 2003-08-07 11:46:42,900 4344667 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.Card.findCardsForPersonA > ndAccounts] > (RMI TCP Connection(12)-10.100.1.22:Card) Executing SQL: SELECT > DISTINCT > t0_c.T_CARD_ID FROM T_CARD t0_c, T_PERSON t2_p, T_ACCOUNT t3_accounts, > T_ACCOUNT_PERSON t5_p_accountObjs_RELATION_TABLE, T_PERSON > t1_c_cardHolder > WHERE (t1_c_cardHolder.T_PERSON_ID = ? OR (t2_p.T_PERSON_ID = ? AND > EXISTS > (SELECT t4_accounts_cardObjs.T_CARD_ID FROM T_CARD t4_accounts_cardObjs > WHERE t3_accounts.T_ACCOUNT_ID=t4_accounts_cardObjs.T_ACCOUNT_ID AND > t4_accounts_cardObjs.T_CARD_ID = t0_c.T_CARD_ID))) AND > (t0_c.T_PERSON_ID=t1_c_cardHolder.T_PERSON_ID AND > t2_p.T_PERSON_ID=t5_p_accountObjs_RELATION_TABLE.T_PERSON_ID AND > t3_accounts.T_ACCOUNT_ID=t5_p_accountObjs_RELATION_TABLE.T_ACCOUNT_ID) > 2003-08-07 11:46:42,940 4344707 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.Card.findCardsForPersonA > ndAccounts] > (RMI TCP Connection(12)-10.100.1.22:Card) Find failed > com.sybase.jdbc2.jdbc.SybSQLException: The identifier that starts with > 't5_p_accountObjs_RELATION_TABL' is too long. Maximum length is 30. > > at com.sybase.jdbc2.tds.Tds.processEed(Tds.java:2672) > at com.sybase.jdbc2.tds.Tds.nextResult(Tds.java:2032) > at > com.sybase.jdbc2.jdbc.ResultGetter.nextResult(ResultGetter.java:69) > at > com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:204) > at > com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:187) > at > com.sybase.jdbc2.jdbc.SybStatement.queryLoop(SybStatement.java:1537) > at > com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:1522) > at > com.sybase.jdbc2.jdbc.SybPreparedStatement.executeQuery(SybPreparedStat > ement.java:72) > at > org.jboss.resource.adapter.jdbc.local.LocalPreparedStatement.executeQue > ry(LocalPreparedStatement.java:289) > at > org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractQueryCommand.execute(JDBCAbs > tractQueryCommand.java:112) > at > org.jboss.ejb.plugins.cmp.jdbc.JDBCFindEntitiesCommand.execute(JDBCFind > EntitiesCommand.java:40) > at > org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.findEntities(JDBCStoreM > anager.java:549) > at > org.jboss.ejb.plugins.CMPPersistenceManager.findEntities(CMPPersistence > Manager.java:348) > at > org.jboss.resource.connectionmanager.CachedConnectionInterceptor.findEn > tities(CachedConnectionInterceptor.java:323) > at > org.jboss.ejb.EntityContainer.findLocal(EntityContainer.java:612) > at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso > rImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityCon > tainer.java:1119) > at > org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractIntercepto > r.java:73) > at > org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(Entit > ySynchronizationInterceptor.java:207) > at > org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke > Home(CachedConnectionInterceptor.java:215) > at > org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractIntercepto > r.java:73) > at > org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstan > ceInterceptor.java:90) > at > org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterc > eptor.java:79) > at > org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(EntityCreati > onInterceptor.java:44) > at > org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterc > eptor.java:111) > at > org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercepto > rCMT.java:228) > at > org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java > :62) > at > org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityIntercepto > r.java:105) > at > org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:129 > ) > at > org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:487) > at > org.jboss.ejb.plugins.local.BaseLocalContainerInvoker.invokeHome(BaseLo > calContainerInvoker.java:230) > at > org.jboss.ejb.plugins.local.LocalHomeProxy.invoke(LocalHomeProxy.java:1 > 10) > at $Proxy115.findCardsForPersonAndAccounts(Unknown Source) > at > xcom.traxbahn.bproc.tasks.CardBcTasks.findCardsForPersonAndAccounts(Car > dBcTasks.java:318) > at > xcom.traxbahn.bproc.ejb.PersonAddressBcBean.getAddressCompositeDTOsForP > erson(PersonAddressBcBean.java:511) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja > va:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso > rImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(Sta > telessSessionContainer.java:660) > at > org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke > (CachedConnectionInterceptor.java:186) > at > org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(Statel > essSessionInstanceInterceptor.java:77) > at > org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterc > eptor.java:107) > at > org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercepto > rCMT.java:228) > at > org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:92) > at > org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.ja > va:130) > at > org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:204) > at > org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContaine > r.java:313) > at org.jboss.ejb.Container.invoke(Container.java:712) > at > org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517) > at > org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:38 > 2) > at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso > rImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) > at sun.rmi.transport.Transport$1.run(Transport.java:148) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:144) > at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460 > ) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.j > ava:701) > at java.lang.Thread.run(Thread.java:536) > Ciao, > Jonathan O'Connor > XCOM Dublin > > > ------------------------------------------------------- > This SF.Net email sponsored by: Free pre-built ASP.NET sites including > Data Reports, E-commerce, Portals, and Forums are available now. > Download today and enter to win an XBOX or Visual Studio .NET. > http://aspnet.click-url.com/go/psa00100003ave/ > direct;at.aspnet_072303_01/01 > _______________________________________________ > JBoss-user mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/jboss-user ------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user ------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user