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.findCardsForPersonAndAccounts] 
(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.findCardsForPersonAndAccounts] 
(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(SybPreparedStatement.java:72)
        at 
org.jboss.resource.adapter.jdbc.local.LocalPreparedStatement.executeQuery(LocalPreparedStatement.java:289)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractQueryCommand.execute(JDBCAbstractQueryCommand.java:112)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCFindEntitiesCommand.execute(JDBCFindEntitiesCommand.java:40)
        at 
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.findEntities(JDBCStoreManager.java:549)
        at 
org.jboss.ejb.plugins.CMPPersistenceManager.findEntities(CMPPersistenceManager.java:348)
        at 
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.findEntities(CachedConnectionInterceptor.java:323)
        at 
org.jboss.ejb.EntityContainer.findLocal(EntityContainer.java:612)
        at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at 
org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:1119)
        at 
org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:73)
        at 
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:207)
        at 
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invokeHome(CachedConnectionInterceptor.java:215)
        at 
org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:73)
        at 
org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:90)
        at 
org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:79)
        at 
org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(EntityCreationInterceptor.java:44)
        at 
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:111)
        at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:228)
        at 
org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:62)
        at 
org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.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(BaseLocalContainerInvoker.java:230)
        at 
org.jboss.ejb.plugins.local.LocalHomeProxy.invoke(LocalHomeProxy.java:110)
        at $Proxy115.findCardsForPersonAndAccounts(Unknown Source)
        at 
xcom.traxbahn.bproc.tasks.CardBcTasks.findCardsForPersonAndAccounts(CardBcTasks.java:318)
        at 
xcom.traxbahn.bproc.ejb.PersonAddressBcBean.getAddressCompositeDTOsForPerson(PersonAddressBcBean.java:511)
        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.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:660)
        at 
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
        at 
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:77)
        at 
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:107)
        at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:228)
        at 
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:92)
        at 
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130)
        at 
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:204)
        at 
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.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:382)
        at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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.java: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

Reply via email to