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 <marci..sh.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 <marci..sh.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
This archive was generated by hypermail 2.0.0 : Sat Mar 03 2007 - 00:47:43 EST