Grokbase Groups Cayenne user May 2007
FAQ
Hi

In our project we needed a generic way to relate many different
entities. Cayenne does not allow vertical inheritance, therefore I
had to make my way around, and create a fake relationship. I'm using
custom superclass for entities, in which accessing methods, like the
one in cayenne are implemented (getTags/addToTags/removeFromTags).
Those methods execute SelectQuery(). I had to expose the pk's , but
it works well.
The application is using derby and ROP.

the problem we have is with creating a query like:

select
$attributes
from $entity
join $joinClause
where ((id in
(
select
TAGRELATION.ENTITYRECORDID
from TAGRELATION join tag on TAGRELATION.tagid = tag.id
where ((TAGRELATION.ENTITYIDENTIFIER = $entityCode) AND (id =
$entityId))
)) AND ($qualifier))
order by $orderby

org.apache.cayenne.exp.Expression does not support that complexity,
therefore I started to use SQLTemplate, but when query like this is
executed:

SELECT #result('Room.name' 'java.lang.String'), #result('site.name'
'java.lang.String'), #result('Room.seatedCapacity'
'java.lang.Integer') FROM ROOM JOIN SITE on ROOM.siteid = SITE.id
exception is thrown:

org.apache.cayenne.CayenneRuntimeException: [v.3.0-SNAPSHOT Mar 29
2007 11:34:53] Remote error. URL - http://localhost:8181/angel-server-
cayenne; CAUSE - [v.3.0-SNAPSHOT Mar 29 2007 11:34:53] [v.$
{project.version} ${project.build.date} ${project.build.time}]
Exception processing message org.apache.cayenne.remote.QueryMessage.
Root cause: [v.${project.version} ${project.build.date} $
{project.build.time}] Error getting ResultIterator: Query Exception:
java.sql.SQLException: Column 'SITE.NAME' is either not in any table
in the FROM list or appears within a join specification and is
outside the scope of the join specification or appears in a HAVING
clause and is not in the GROUP BY list. If this is a CREATE or ALTER
TABLE statement then 'SITE.NAME' is not a column in the target table.
at org.apache.derby.client.am.SQLExceptionFactory.getSQLException
(Unknown Source)
at org.apache.derby.client.am.SqlException.getSQLException(Unknown
Source)
at org.apache.derby.client.am.Connection.prepareStatement(Unknown
Source)
at org.apache.cayenne.conn.ConnectionWrapper.prepareStatement
(ConnectionWrapper.java:274)
at org.apache.cayenne.conn.ConnectionWrapper.prepareStatement
(ConnectionWrapper.java:280)
at
org.apache.cayenne.access.TransactionConnectionDecorator.prepareStatemen
t(TransactionConnectionDecorator.java:179)
at org.apache.cayenne.access.jdbc.SQLTemplateAction.execute
(SQLTemplateAction.java:130)
at org.apache.cayenne.access.jdbc.SQLTemplateAction.performAction
(SQLTemplateAction.java:107)
at org.apache.cayenne.access.DataNodeQueryAction.runQuery
(DataNodeQueryAction.java:57)
at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:236)
at org.apache.cayenne.access.DataDomainLegacyQueryAction.execute
(DataDomainLegacyQueryAction.java:82)
at org.apache.cayenne.access.DataDomain$1.transform(DataDomain.java:
704)
at org.apache.cayenne.access.DataDomain.runInTransaction
(DataDomain.java:802)
at org.apache.cayenne.access.DataDomain.performQueries
(DataDomain.java:698)
at org.apache.cayenne.access.DataContext.internalPerformIteratedQuery
(DataContext.java:1261)
at org.apache.cayenne.access.DataContext.performIteratedQuery
(DataContext.java:1227)
at org.apache.cayenne.access.IncrementalFaultList.fillIn
(IncrementalFaultList.java:190)
at org.apache.cayenne.access.IncrementalFaultList.<init>
(IncrementalFaultList.java:156)
at
org.apache.cayenne.access.DataContextQueryAction.interceptPaginatedQuery
(DataContextQueryAction.java:109)
at org.apache.cayenne.access.DataContextQueryAction.execute
(DataContextQueryAction.java:54)
at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1321)
at org.apache.cayenne.access.ClientServerChannelQueryAction.runQuery
(ClientServerChannelQueryAction.java:105)
at org.apache.cayenne.access.ClientServerChannelQueryAction.execute
(ClientServerChannelQueryAction.java:66)
at org.apache.cayenne.access.ClientServerChannel.onQuery
(ClientServerChannel.java:79)
at org.apache.cayenne.intercept.DataChannelDecorator.onQuery
(DataChannelDecorator.java:57)
at org.apache.cayenne.remote.service.DispatchHelper.dispatch
(DispatchHelper.java:40)
at org.apache.cayenne.remote.service.BaseRemoteService.processMessage
(BaseRemoteService.java:151)

When the same query is executed directly in derby there are no
problems, so either:
- cayenne does not handle joins in SQLTemplate correctly (is http://
issues.apache.org/cayenne/browse/CAY-552 related ?)
- I'm doing something wrong

Also, was my idea to use SQLTemplate right ? I have tried to use
Expression, but I could not find a way to encode the query I need. Is
there any better way to archive what I'm after ?


Cheers
Marcin

Search Discussions

  • Marcin Skladaniec at May 14, 2007 at 12:40 am
    Hi
    I did some more debugging and I found that SQLTemplate on client :

    SELECT #result('Room.name' 'java.lang.String'), #result('site.name'
    'java.lang.String'), #result('Room.seatedCapacity'
    'java.lang.Integer') FROM ROOM INNER JOIN SITE on ROOM.siteid =
    SITE.id ORDER BY Room.name

    is loosing the join part when executed on server:

    [java] 10:24:24,003 [SocketListener0-0] INFO
    org.apache.cayenne.access.QueryLogger :276 - SELECT Room.name,
    site.name, Room.seatedCapacity FROM ROOM ORDER BY Room.name

    Why is that? Is there something I'm doing wrong ?

    Marcin

    On 13/05/2007, at 8:29 PM, Marcin Skladaniec wrote:

    Hi

    In our project we needed a generic way to relate many different
    entities. Cayenne does not allow vertical inheritance, therefore I
    had to make my way around, and create a fake relationship. I'm
    using custom superclass for entities, in which accessing methods,
    like the one in cayenne are implemented (getTags/addToTags/
    removeFromTags). Those methods execute SelectQuery(). I had to
    expose the pk's , but it works well.
    The application is using derby and ROP.

    the problem we have is with creating a query like:

    select
    $attributes
    from $entity
    join $joinClause
    where ((id in
    (
    select
    TAGRELATION.ENTITYRECORDID
    from TAGRELATION join tag on TAGRELATION.tagid = tag.id
    where ((TAGRELATION.ENTITYIDENTIFIER = $entityCode) AND (id =
    $entityId))
    )) AND ($qualifier))
    order by $orderby

    org.apache.cayenne.exp.Expression does not support that complexity,
    therefore I started to use SQLTemplate, but when query like this is
    executed:

    SELECT #result('Room.name' 'java.lang.String'), #result('site.name'
    'java.lang.String'), #result('Room.seatedCapacity'
    'java.lang.Integer') FROM ROOM JOIN SITE on ROOM.siteid = SITE.id
    exception is thrown:

    org.apache.cayenne.CayenneRuntimeException: [v.3.0-SNAPSHOT Mar 29
    2007 11:34:53] Remote error. URL - http://localhost:8181/angel-
    server-cayenne; CAUSE - [v.3.0-SNAPSHOT Mar 29 2007 11:34:53] [v.$
    {project.version} ${project.build.date} ${project.build.time}]
    Exception processing message
    org.apache.cayenne.remote.QueryMessage. Root cause: [v.$
    {project.version} ${project.build.date} ${project.build.time}]
    Error getting ResultIterator: Query Exception:
    java.sql.SQLException: Column 'SITE.NAME' is either not in any
    table in the FROM list or appears within a join specification and
    is outside the scope of the join specification or appears in a
    HAVING clause and is not in the GROUP BY list. If this is a CREATE
    or ALTER TABLE statement then 'SITE.NAME' is not a column in the
    target table.
    at org.apache.derby.client.am.SQLExceptionFactory.getSQLException
    (Unknown Source)
    at org.apache.derby.client.am.SqlException.getSQLException(Unknown
    Source)
    at org.apache.derby.client.am.Connection.prepareStatement(Unknown
    Source)
    at org.apache.cayenne.conn.ConnectionWrapper.prepareStatement
    (ConnectionWrapper.java:274)
    at org.apache.cayenne.conn.ConnectionWrapper.prepareStatement
    (ConnectionWrapper.java:280)
    at
    org.apache.cayenne.access.TransactionConnectionDecorator.prepareStatem
    ent(TransactionConnectionDecorator.java:179)
    at org.apache.cayenne.access.jdbc.SQLTemplateAction.execute
    (SQLTemplateAction.java:130)
    at org.apache.cayenne.access.jdbc.SQLTemplateAction.performAction
    (SQLTemplateAction.java:107)
    at org.apache.cayenne.access.DataNodeQueryAction.runQuery
    (DataNodeQueryAction.java:57)
    at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:
    236)
    at org.apache.cayenne.access.DataDomainLegacyQueryAction.execute
    (DataDomainLegacyQueryAction.java:82)
    at org.apache.cayenne.access.DataDomain$1.transform
    (DataDomain.java:704)
    at org.apache.cayenne.access.DataDomain.runInTransaction
    (DataDomain.java:802)
    at org.apache.cayenne.access.DataDomain.performQueries
    (DataDomain.java:698)
    at
    org.apache.cayenne.access.DataContext.internalPerformIteratedQuery
    (DataContext.java:1261)
    at org.apache.cayenne.access.DataContext.performIteratedQuery
    (DataContext.java:1227)
    at org.apache.cayenne.access.IncrementalFaultList.fillIn
    (IncrementalFaultList.java:190)
    at org.apache.cayenne.access.IncrementalFaultList.<init>
    (IncrementalFaultList.java:156)
    at
    org.apache.cayenne.access.DataContextQueryAction.interceptPaginatedQue
    ry(DataContextQueryAction.java:109)
    at org.apache.cayenne.access.DataContextQueryAction.execute
    (DataContextQueryAction.java:54)
    at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    1321)
    at
    org.apache.cayenne.access.ClientServerChannelQueryAction.runQuery
    (ClientServerChannelQueryAction.java:105)
    at org.apache.cayenne.access.ClientServerChannelQueryAction.execute
    (ClientServerChannelQueryAction.java:66)
    at org.apache.cayenne.access.ClientServerChannel.onQuery
    (ClientServerChannel.java:79)
    at org.apache.cayenne.intercept.DataChannelDecorator.onQuery
    (DataChannelDecorator.java:57)
    at org.apache.cayenne.remote.service.DispatchHelper.dispatch
    (DispatchHelper.java:40)
    at
    org.apache.cayenne.remote.service.BaseRemoteService.processMessage
    (BaseRemoteService.java:151)

    When the same query is executed directly in derby there are no
    problems, so either:
    - cayenne does not handle joins in SQLTemplate correctly (is http://
    issues.apache.org/cayenne/browse/CAY-552 related ?)
    - I'm doing something wrong

    Also, was my idea to use SQLTemplate right ? I have tried to use
    Expression, but I could not find a way to encode the query I need.
    Is there any better way to archive what I'm after ?


    Cheers
    Marcin

    Marcin
  • Andrus Adamchik at May 14, 2007 at 6:08 am
    Hi Marcin,

    Initially I thought the query may be losing a parameter $joinClause,
    but then the SQL at the DB level would look like

    SELECT ... FROM ROOM join ORDER BY Room.name

    The "join" word is not a parameter and is instead hardcoded in your
    template, right? And still does not show up in the output... So
    there's something else. Could you post the code you are using to
    build and call the query on the client?

    Andrus

    On May 14, 2007, at 3:39 AM, Marcin Skladaniec wrote:
    Hi
    I did some more debugging and I found that SQLTemplate on client :

    SELECT #result('Room.name' 'java.lang.String'), #result('site.name'
    'java.lang.String'), #result('Room.seatedCapacity'
    'java.lang.Integer') FROM ROOM INNER JOIN SITE on ROOM.siteid =
    SITE.id ORDER BY Room.name

    is loosing the join part when executed on server:

    [java] 10:24:24,003 [SocketListener0-0] INFO
    org.apache.cayenne.access.QueryLogger :276 - SELECT Room.name,
    site.name, Room.seatedCapacity FROM ROOM ORDER BY Room.name

    Why is that? Is there something I'm doing wrong ?

    Marcin

    On 13/05/2007, at 8:29 PM, Marcin Skladaniec wrote:

    Hi

    In our project we needed a generic way to relate many different
    entities. Cayenne does not allow vertical inheritance, therefore I
    had to make my way around, and create a fake relationship. I'm
    using custom superclass for entities, in which accessing methods,
    like the one in cayenne are implemented (getTags/addToTags/
    removeFromTags). Those methods execute SelectQuery(). I had to
    expose the pk's , but it works well.
    The application is using derby and ROP.

    the problem we have is with creating a query like:

    select
    $attributes
    from $entity
    join $joinClause
    where ((id in
    (
    select
    TAGRELATION.ENTITYRECORDID
    from TAGRELATION join tag on TAGRELATION.tagid = tag.id
    where ((TAGRELATION.ENTITYIDENTIFIER = $entityCode) AND (id =
    $entityId))
    )) AND ($qualifier))
    order by $orderby

    org.apache.cayenne.exp.Expression does not support that
    complexity, therefore I started to use SQLTemplate, but when query
    like this is executed:

    SELECT #result('Room.name' 'java.lang.String'), #result
    ('site.name' 'java.lang.String'), #result('Room.seatedCapacity'
    'java.lang.Integer') FROM ROOM JOIN SITE on ROOM.siteid = SITE.id
    exception is thrown:

    org.apache.cayenne.CayenneRuntimeException: [v.3.0-SNAPSHOT Mar 29
    2007 11:34:53] Remote error. URL - http://localhost:8181/angel-
    server-cayenne; CAUSE - [v.3.0-SNAPSHOT Mar 29 2007 11:34:53] [v.$
    {project.version} ${project.build.date} ${project.build.time}]
    Exception processing message
    org.apache.cayenne.remote.QueryMessage. Root cause: [v.$
    {project.version} ${project.build.date} ${project.build.time}]
    Error getting ResultIterator: Query Exception:
    java.sql.SQLException: Column 'SITE.NAME' is either not in any
    table in the FROM list or appears within a join specification and
    is outside the scope of the join specification or appears in a
    HAVING clause and is not in the GROUP BY list. If this is a CREATE
    or ALTER TABLE statement then 'SITE.NAME' is not a column in the
    target table.
    at org.apache.derby.client.am.SQLExceptionFactory.getSQLException
    (Unknown Source)
    at org.apache.derby.client.am.SqlException.getSQLException
    (Unknown Source)
    at org.apache.derby.client.am.Connection.prepareStatement(Unknown
    Source)
    at org.apache.cayenne.conn.ConnectionWrapper.prepareStatement
    (ConnectionWrapper.java:274)
    at org.apache.cayenne.conn.ConnectionWrapper.prepareStatement
    (ConnectionWrapper.java:280)
    at
    org.apache.cayenne.access.TransactionConnectionDecorator.prepareState
    ment(TransactionConnectionDecorator.java:179)
    at org.apache.cayenne.access.jdbc.SQLTemplateAction.execute
    (SQLTemplateAction.java:130)
    at org.apache.cayenne.access.jdbc.SQLTemplateAction.performAction
    (SQLTemplateAction.java:107)
    at org.apache.cayenne.access.DataNodeQueryAction.runQuery
    (DataNodeQueryAction.java:57)
    at org.apache.cayenne.access.DataNode.performQueries
    (DataNode.java:236)
    at org.apache.cayenne.access.DataDomainLegacyQueryAction.execute
    (DataDomainLegacyQueryAction.java:82)
    at org.apache.cayenne.access.DataDomain$1.transform
    (DataDomain.java:704)
    at org.apache.cayenne.access.DataDomain.runInTransaction
    (DataDomain.java:802)
    at org.apache.cayenne.access.DataDomain.performQueries
    (DataDomain.java:698)
    at
    org.apache.cayenne.access.DataContext.internalPerformIteratedQuery
    (DataContext.java:1261)
    at org.apache.cayenne.access.DataContext.performIteratedQuery
    (DataContext.java:1227)
    at org.apache.cayenne.access.IncrementalFaultList.fillIn
    (IncrementalFaultList.java:190)
    at org.apache.cayenne.access.IncrementalFaultList.<init>
    (IncrementalFaultList.java:156)
    at
    org.apache.cayenne.access.DataContextQueryAction.interceptPaginatedQu
    ery(DataContextQueryAction.java:109)
    at org.apache.cayenne.access.DataContextQueryAction.execute
    (DataContextQueryAction.java:54)
    at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:
    1321)
    at
    org.apache.cayenne.access.ClientServerChannelQueryAction.runQuery
    (ClientServerChannelQueryAction.java:105)
    at
    org.apache.cayenne.access.ClientServerChannelQueryAction.execute
    (ClientServerChannelQueryAction.java:66)
    at org.apache.cayenne.access.ClientServerChannel.onQuery
    (ClientServerChannel.java:79)
    at org.apache.cayenne.intercept.DataChannelDecorator.onQuery
    (DataChannelDecorator.java:57)
    at org.apache.cayenne.remote.service.DispatchHelper.dispatch
    (DispatchHelper.java:40)
    at
    org.apache.cayenne.remote.service.BaseRemoteService.processMessage
    (BaseRemoteService.java:151)

    When the same query is executed directly in derby there are no
    problems, so either:
    - cayenne does not handle joins in SQLTemplate correctly (is
    http://issues.apache.org/cayenne/browse/CAY-552 related ?)
    - I'm doing something wrong

    Also, was my idea to use SQLTemplate right ? I have tried to use
    Expression, but I could not find a way to encode the query I need.
    Is there any better way to archive what I'm after ?


    Cheers
    Marcin

    Marcin


  • Marcin Skladaniec at May 14, 2007 at 3:42 pm
    I dont know what happened but the SQLTemplate started to work. All I
    did is I converted all the table names and the attribute names to
    upper case, but I think that 'ant clean' on our project might have
    some impact as well.

    Thanks
    Marcin
    On 14/05/2007, at 4:08 PM, Andrus Adamchik wrote:

    Hi Marcin,

    Initially I thought the query may be losing a parameter
    $joinClause, but then the SQL at the DB level would look like

    SELECT ... FROM ROOM join ORDER BY Room.name

    The "join" word is not a parameter and is instead hardcoded in your
    template, right? And still does not show up in the output... So
    there's something else. Could you post the code you are using to
    build and call the query on the client?

    Andrus

    On May 14, 2007, at 3:39 AM, Marcin Skladaniec wrote:
    Hi
    I did some more debugging and I found that SQLTemplate on client :

    SELECT #result('Room.name' 'java.lang.String'), #result
    ('site.name' 'java.lang.String'), #result('Room.seatedCapacity'
    'java.lang.Integer') FROM ROOM INNER JOIN SITE on ROOM.siteid =
    SITE.id ORDER BY Room.name

    is loosing the join part when executed on server:

    [java] 10:24:24,003 [SocketListener0-0] INFO
    org.apache.cayenne.access.QueryLogger :276 - SELECT Room.name,
    site.name, Room.seatedCapacity FROM ROOM ORDER BY Room.name

    Why is that? Is there something I'm doing wrong ?

    Marcin

    On 13/05/2007, at 8:29 PM, Marcin Skladaniec wrote:

    Hi

    In our project we needed a generic way to relate many different
    entities. Cayenne does not allow vertical inheritance, therefore
    I had to make my way around, and create a fake relationship. I'm
    using custom superclass for entities, in which accessing methods,
    like the one in cayenne are implemented (getTags/addToTags/
    removeFromTags). Those methods execute SelectQuery(). I had to
    expose the pk's , but it works well.
    The application is using derby and ROP.

    the problem we have is with creating a query like:

    select
    $attributes
    from $entity
    join $joinClause
    where ((id in
    (
    select
    TAGRELATION.ENTITYRECORDID
    from TAGRELATION join tag on TAGRELATION.tagid = tag.id
    where ((TAGRELATION.ENTITYIDENTIFIER = $entityCode) AND (id =
    $entityId))
    )) AND ($qualifier))
    order by $orderby

    org.apache.cayenne.exp.Expression does not support that
    complexity, therefore I started to use SQLTemplate, but when
    query like this is executed:

    SELECT #result('Room.name' 'java.lang.String'), #result
    ('site.name' 'java.lang.String'), #result('Room.seatedCapacity'
    'java.lang.Integer') FROM ROOM JOIN SITE on ROOM.siteid = SITE.id
    exception is thrown:

    org.apache.cayenne.CayenneRuntimeException: [v.3.0-SNAPSHOT Mar
    29 2007 11:34:53] Remote error. URL - http://localhost:8181/angel-
    server-cayenne; CAUSE - [v.3.0-SNAPSHOT Mar 29 2007 11:34:53] [v.$
    {project.version} ${project.build.date} ${project.build.time}]
    Exception processing message
    org.apache.cayenne.remote.QueryMessage. Root cause: [v.$
    {project.version} ${project.build.date} ${project.build.time}]
    Error getting ResultIterator: Query Exception:
    java.sql.SQLException: Column 'SITE.NAME' is either not in any
    table in the FROM list or appears within a join specification and
    is outside the scope of the join specification or appears in a
    HAVING clause and is not in the GROUP BY list. If this is a
    CREATE or ALTER TABLE statement then 'SITE.NAME' is not a column
    in the target table.
    at org.apache.derby.client.am.SQLExceptionFactory.getSQLException
    (Unknown Source)
    at org.apache.derby.client.am.SqlException.getSQLException
    (Unknown Source)
    at org.apache.derby.client.am.Connection.prepareStatement
    (Unknown Source)
    at org.apache.cayenne.conn.ConnectionWrapper.prepareStatement
    (ConnectionWrapper.java:274)
    at org.apache.cayenne.conn.ConnectionWrapper.prepareStatement
    (ConnectionWrapper.java:280)
    at
    org.apache.cayenne.access.TransactionConnectionDecorator.prepareStat
    ement(TransactionConnectionDecorator.java:179)
    at org.apache.cayenne.access.jdbc.SQLTemplateAction.execute
    (SQLTemplateAction.java:130)
    at org.apache.cayenne.access.jdbc.SQLTemplateAction.performAction
    (SQLTemplateAction.java:107)
    at org.apache.cayenne.access.DataNodeQueryAction.runQuery
    (DataNodeQueryAction.java:57)
    at org.apache.cayenne.access.DataNode.performQueries
    (DataNode.java:236)
    at org.apache.cayenne.access.DataDomainLegacyQueryAction.execute
    (DataDomainLegacyQueryAction.java:82)
    at org.apache.cayenne.access.DataDomain$1.transform
    (DataDomain.java:704)
    at org.apache.cayenne.access.DataDomain.runInTransaction
    (DataDomain.java:802)
    at org.apache.cayenne.access.DataDomain.performQueries
    (DataDomain.java:698)
    at
    org.apache.cayenne.access.DataContext.internalPerformIteratedQuery
    (DataContext.java:1261)
    at org.apache.cayenne.access.DataContext.performIteratedQuery
    (DataContext.java:1227)
    at org.apache.cayenne.access.IncrementalFaultList.fillIn
    (IncrementalFaultList.java:190)
    at org.apache.cayenne.access.IncrementalFaultList.<init>
    (IncrementalFaultList.java:156)
    at
    org.apache.cayenne.access.DataContextQueryAction.interceptPaginatedQ
    uery(DataContextQueryAction.java:109)
    at org.apache.cayenne.access.DataContextQueryAction.execute
    (DataContextQueryAction.java:54)
    at org.apache.cayenne.access.DataContext.onQuery
    (DataContext.java:1321)
    at
    org.apache.cayenne.access.ClientServerChannelQueryAction.runQuery
    (ClientServerChannelQueryAction.java:105)
    at
    org.apache.cayenne.access.ClientServerChannelQueryAction.execute
    (ClientServerChannelQueryAction.java:66)
    at org.apache.cayenne.access.ClientServerChannel.onQuery
    (ClientServerChannel.java:79)
    at org.apache.cayenne.intercept.DataChannelDecorator.onQuery
    (DataChannelDecorator.java:57)
    at org.apache.cayenne.remote.service.DispatchHelper.dispatch
    (DispatchHelper.java:40)
    at
    org.apache.cayenne.remote.service.BaseRemoteService.processMessage
    (BaseRemoteService.java:151)

    When the same query is executed directly in derby there are no
    problems, so either:
    - cayenne does not handle joins in SQLTemplate correctly (is
    http://issues.apache.org/cayenne/browse/CAY-552 related ?)
    - I'm doing something wrong

    Also, was my idea to use SQLTemplate right ? I have tried to use
    Expression, but I could not find a way to encode the query I
    need. Is there any better way to archive what I'm after ?


    Cheers
    Marcin

    Marcin


    Marcin

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupuser @
categoriescayenne
postedMay 13, '07 at 10:30a
activeMay 14, '07 at 3:42p
posts4
users2
websitecayenne.apache.org

People

Translate

site design / logo © 2022 Grokbase