Hi Jason,

I want to do a query like: Find all relationships in which A is involved. I
think I cannot do anything like filter(A.key in key). So the only way is to
do something like: filter(from = A.key & fromAttribute = false) + filter(to
= A.key & toAttribute = false) (1st model in original post) or filter(both =
A.key) followed by filtering the attributes from the result (second model in
original post). Is this the best way? Just felt a bit ugly thats why I
wanted to double check.

Constructing the key by concatenating keys of A and B will ensure that I
dont have multiple of Relationships between A and B.

Thanks.

On Thu, Aug 20, 2009 at 12:17 PM, Jason (Google) <[email protected]>wrote:

> Hi Sam. Are you saying that, given two node names, you want to see if
> there's an edge between them? In that case, couldn't you concatenate the two
> node names, putting the smallest one first, and doing a direct get to see if
> an entity is returned? If you get a result, that means there is an edge from
> A-B, otherwise you'll get null (JPA) or trigger an exception (JDO).
>
> Or are you asking how you'll access the individual nodes given that the key
> is a concatenation. If this is your question, I'd recommend keeping A and B
> as separate entities and creating a new kind for edges. Then you can still
> get the individual nodes back and easily find whether any two nodes are
> connected or not using my suggestion from the first paragraph. Does this
> answer your question?
>
> - Jason
>
> On Wed, Aug 19, 2009 at 10:42 PM, Sam Walker <[email protected]>wrote:
>
>> I want to create a key for this relationship, lets say if A -> B exists, B
>> -> A cannot exist together. I was thinking of concatenating key A and key B,
>> sth like A-B. I make sure the smallest key is first, so that I dont have any
>> B-As.
>>
>> But, how would I do a query for the two entitites? Is the only solution to
>> have extra ArrayList<Key> or Key from, Key to attributes and put them in the
>> criteria?
>>
>>
>> On Mon, Aug 10, 2009 at 5:08 AM, objectuser <[email protected]>wrote:
>>
>>>
>>> If that's as complex as your queries get, I'd recommend just doing to
>>> queries and merging the results.
>>>
>>> Also, if the semantics of fromAttribute and toAttribute are different,
>>> then you've lost that in your second model.
>>>
>>> On Aug 9, 10:45 pm, Sam Walker <[email protected]> wrote:
>>> > I have a directed graph scenario and I want to model the relationship
>>> with
>>> > App Engine data store.
>>> >
>>> > Relationship {
>>> >   Key from;
>>> >   Key to;
>>> >   boolean fromAttribute;
>>> >   boolean toAttribute;
>>> >
>>> > }
>>> >
>>> > I want to do this query: where (from = <key> and fromAttribute =
>>> > <attribute>) or (to = <key> and toAttribute = <attribute>). Ors are not
>>> > allowed. So, I am not sure how to do it. I am now thinking of doing:
>>> >
>>> > Relationship {
>>> >   ArrayList<Key> both; // Will always have two keys
>>> >   ArrayList<boolean> attributes;
>>> >
>>> > }
>>> >
>>> > Now, I could change the query to: where <key> in both, and then check
>>> for
>>> > respective attributes, but that's kinda ugly.
>>> >
>>> > I am sure there will be a better way, please help.
>>>
>>>
>>
>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to