cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marcin Skladaniec <mar...@ish.com.au>
Subject Re: expression to find out null relationship
Date Sat, 03 Mar 2007 05:47:03 GMT
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 <marcin@ish.com.au> 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 <marcin@ish.com.au> 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




Mime
View raw message