Hi
I'm still struggling trying to fetch only AppleTrees with Apples which are red.

Apple -AppleTree is a simple many-to-one relationship. I dont want to fault every appleTree and apple, I want to use either NamedQuery or Expression.
When I attempt with NamedQuery like:
<sql><![CDATA[SELECT $select FROM AppleTree join Apple on (AppleTree.id = Apple.treeId) where (Apple.color = 'red') ]]></sql> I get a correct sql response, but cayenne fails to build up the entities out of it: org.apache.cayenne.CayenneRuntimeException: [v.3.0-SNAPSHOT Jan 19 2007 05:26:38] Remote error. URL - http://localhost:8181/angel-server- cayenne; CAUSE - [v.3.0-SNAPSHOT Jan 19 2007 05:26:38] [v.3.0- SNAPSHOT Jan 19 2007 05:26:38] Exception processing message org.apache.cayenne.remote.QueryMessage. Root cause: [v.3.0-SNAPSHOT Jan 19 2007 05:26:38] Null value for 'id'.

when I try with Expression the expression is ignored and makes no difference, (is there an automatic join clause created ?): SelectQuery sq = new SelectQuery(AppleTree.class, ExpressionFactory.matchExp(Apple.COLOR, "red") );

Does someone have any hints ?
Marcin



On 01/03/2007, at 12:48 AM, Mike Kienenberger wrote:

You may be right.  I vaguely recall now that this only works for
to-one relations.   For to-many relations, I can't remember how I
handled this.


On 2/28/07, Marcin Skladaniec <[EMAIL PROTECTED]> wrote:
Hi
Mike, the ExpressionFactory.noMatchExp(AppleTree.APPLE_PROPERTY,
null) does not work. I tried. I recollect I used Expression which
aimed other way around (from many to one, example :
ExpressionFactory.noMatchExp(Apple.APPLE_TREE_PROPERTY, null) ).
Marcin


On 28/02/2007, at 11:11 AM, Mike Kienenberger wrote:

> ExpressionFactory.noMatchExp(AppleTree.APPLE_PROPERTY, null)
>
> Be aware that you cannot safely combine this expression with other
> expressions due to outer join issues, unless you're using the outer
> join patch.   I think there was another null-related fix mixed into
> that patch.
>
> On 2/27/07, Marcin Skladaniec <[EMAIL PROTECTED]> wrote:
>> Hi
>>
>> I have a simple one-to-many relationship : AppleTree - Apple. I'm
>> doing a query :
>> new SelectQuery(AppleTree.class, expression)
>> how should the expression look like to return the trees with apples ?
>> expression = ExpressionFactory.noMatchExp(AppleTree.APPLES, null)
>> does not seem to work, neither does
>> expression = ExpressionFactory.noMatchExp("applesArray", null)
>>
>> Regards
>> Marcin
>>

Marcin





Marcin



Reply via email to