Message from discussion
1:1 relationship in SDN is not deleting old relationship
Received: by 10.236.43.52 with SMTP id k40mr606994yhb.21.1349965670418;
Thu, 11 Oct 2012 07:27:50 -0700 (PDT)
X-BeenThere: neo4j@googlegroups.com
Received: by 10.236.139.40 with SMTP id b28ls2761603yhj.3.gmail; Thu, 11 Oct
2012 07:27:48 -0700 (PDT)
Received: by 10.66.85.136 with SMTP id h8mr223620paz.46.1349965668717;
Thu, 11 Oct 2012 07:27:48 -0700 (PDT)
Received: by 10.66.85.136 with SMTP id h8mr223619paz.46.1349965668703;
Thu, 11 Oct 2012 07:27:48 -0700 (PDT)
Return-Path: <azeeztechni...@gmail.com>
Received: from mail-da0-f41.google.com (mail-da0-f41.google.com [209.85.210.41])
by gmr-mx.google.com with ESMTPS id m8si1217099pav.2.2012.10.11.07.27.48
(version=TLSv1/SSLv3 cipher=OTHER);
Thu, 11 Oct 2012 07:27:48 -0700 (PDT)
Received-SPF: pass (google.com: domain of azeeztechni...@gmail.com designates 209.85.210.41 as permitted sender) client-ip=209.85.210.41;
Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of azeeztechni...@gmail.com designates 209.85.210.41 as permitted sender) smtp.mail=azeeztechni...@gmail.com; dkim=pass header...@gmail.com
Received: by mail-da0-f41.google.com with SMTP id i14so877084dad.0
for <neo4j@googlegroups.com>; Thu, 11 Oct 2012 07:27:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20120113;
h=mime-version:in-reply-to:references:from:date:message-id:subject:to
:content-type;
bh=gI9qPEzlf5gNna8fqt4UfHLVxmxQ9dnwlRjoE9Guebk=;
b=SgLOd14j744Ugitk60LzCXLasfunq48/U7JT3fTj9XGiHgt/d0WsYBRBrRvO1lczkq
1bi77j93xpzaMawCguXKd0H8ncqvYdhyO45hG/dV82hj8yuxV7GQ9pcsmWXNRsKUaA25
L8TNhJ+xwdyDsozBbqRnk21kUgHbKOB6uOS/ky9aF7KRzKhLtYMgNq/Xr0BV4EwPl0Bc
5Rf+KCUihpqCVst9NAfjsM3/7MdK38e4V+yYXJ6+ItNouG0+UC5I1YHksIDSk7LqOdgI
i0iiUaBmG5iAJKMb2XzqIfdRMkkCggQ5GJQqlHcuBY1CzuBkGOf6uxhh/3g1bcHHzaKy
Q/oA==
Received: by 10.66.81.231 with SMTP id d7mr2637805pay.50.1349965668381; Thu,
11 Oct 2012 07:27:48 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.68.15.10 with HTTP; Thu, 11 Oct 2012 07:27:28 -0700 (PDT)
In-Reply-To: <CAP4mnvY1haWHh_sueyjN6wwuttVP3pNL3wqcrCh76iwHBNG...@mail.gmail.com>
References: <CAP4mnvZAw3My51LX9cvt8qNL0U3BgaT-cC9hQhY0H8_T62q...@mail.gmail.com>
<CAP4mnvYak8r6vy1Kg9dhPgh7wuhgLRdbfrLvxeKnMLx0+0x...@mail.gmail.com>
<81B363C6-5A5E-4C6D-BB36-CDF882963...@neotechnology.com> <CAP4mnvY1haWHh_sueyjN6wwuttVP3pNL3wqcrCh76iwHBNG...@mail.gmail.com>
From: Abdul Azeez Shaik <azeeztechni...@gmail.com>
Date: Thu, 11 Oct 2012 19:57:28 +0530
Message-ID: <CAP4mnvZu6hQ7uB8zaTMVnywWJRmtwJ_g16F55oU1iT-93WZ...@mail.gmail.com>
Subject: Re: [Neo4j] Re: 1:1 relationship in SDN is not deleting old relationship
To: neo4j@googlegroups.com
Content-Type: multipart/alternative; boundary=f46d042ef5b91f73f204cbc960e8
--f46d042ef5b91f73f204cbc960e8
Content-Type: text/plain; charset=ISO-8859-1
Am saving the below data, using neo4jTemplate,
neo4jTemplate.save(newUpdate);
On Thu, Oct 11, 2012 at 7:55 PM, Abdul Azeez Shaik <azeeztechni...@gmail.com
> wrote:
> Hi Michael,
>
> I am using latest 2.1.0.RC4 and Neo4j 1.8GA,
> Here is the code,
>
> StatusUpdateData userupdate = statusRepo.getlatestStatusUpdate(username);
>
> if(null == userupdate) {
>
> error.append("No user found");
>
> return null;
>
> }
>
> StatusUpdate newUpdate = new StatusUpdate(statusupdate);
>
> User user = userupdate.getUser();
>
> if(null == user) {
>
> return null;
>
> }
>
> newUpdate.setAddedBy(user);
>
> StatusUpdate oldupdate = userupdate.getUpdate();
>
> if(null != oldupdate) {
>
> newUpdate.setStatus(oldupdate);
>
> }
>
> Here is my NodeEntity class,
>
> public class StatusUpdate {
>
> .....
>
> @RelatedTo(type="NEXT", direction = Direction.OUTGOING)
>
> StatusUpdate status;
>
> @RelatedTo(type="STATUS", direction = Direction.INCOMING)
>
> User addedBy;
> .....
> }
>
> Here is the query on repository which am using in first line above,
>
> @Query("START user=node:search(username={0}) MATCH
> user-[r?:STATUS]-update return update, user")
>
> StatusUpdateData getlatestStatusUpdate(String username);
> Here is my StatusUpdateData MapResult
>
> @MapResult
>
> public interface StatusUpdateData {
>
>
> @ResultColumn("update")
>
> StatusUpdate getUpdate();
>
> @ResultColumn("user")
>
> User getUser();
>
> }
> Kindly let me know if i have missed something here...
>
> With all above code, am trying to achieve the below cypher query, I had to
> re-write the code in SDN, as i was not sure how to create index for new
> node in below query,
>
> @Query("START n=node:search(username={0}) MATCH n-[r?:STATUS]->oldsu
> DELETE r " +
>
> "WITH n,oldsu " +
>
> "CREATE n-[:STATUS]->(newsu
> {statusid:{1},statusUpdate:{2},postedDate:{3},__type__:'org.netvogue.server.neo4japi.domain.StatusUpdate'})
> " +
>
> "WITH newsu, oldsu CREATE newsu-[:NEXT]->oldsu WHERE oldsu <> null
> RETURN newsu")
>
>
> On Thu, Oct 11, 2012 at 6:33 PM, Michael Hunger <
> michael.hun...@neotechnology.com> wrote:
>
>> Yes,
>>
>> the old relationship should be deleted, (aka an outgoing relationship
>> named "s" from the current user to another status.
>>
>> What versions do you use?
>>
>> Can you show the code where you change the relationship?
>>
>> Thanks
>>
>> Michael
>>
>> Am 11.10.2012 um 14:55 schrieb Abdul Azeez Shaik:
>>
>> Any reply on this?
>>
>> On Thu, Oct 11, 2012 at 12:40 AM, Abdul Azeez Shaik <
>> azeeztechni...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I have a following NodeEntity,
>>> Class User {
>>> Status s;
>>> }
>>>
>>> I have created a new user and added a status to s'. Everything worked
>>> fine.
>>> Next time i got the user and added a new status to 's'. What is the
>>> intended behavior?
>>>
>>> I was expecting that old relationship with old 's' will get deleted and
>>> new relationship will get established with new 's'.
>>> However, right now, old relationship is still intact and new
>>> relationship is being created.
>>>
>>> Can you please let me know if it is intended behavior? If yes, then how
>>> do i achieve the removing old one and adding new one in one query,
>>> otherwise, i have to first remove the old one and add new one in another
>>> query.
>>>
>>> Kindly suggest.
>>>
>>> Thanks,
>>> Abdul
>>>
>>>
>>
>> --
>>
>>
>>
>>
>> --
>>
>>
>>
>
>
--f46d042ef5b91f73f204cbc960e8
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Am saving the below data, using neo4jTemplate,<div>
<p class=3D"p1"><span class=3D"s1">neo4jTemplate</span>.save(newUpdate);</p=
><br><div class=3D"gmail_quote">On Thu, Oct 11, 2012 at 7:55 PM, Abdul Azee=
z Shaik <span dir=3D"ltr"><<a href=3D"mailto:azeeztechni...@gmail.com" t=
arget=3D"_blank">azeeztechni...@gmail.com</a>></span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Hi Michael,<div><br></div><div>I am using la=
test 2.1.0.RC4 and Neo4j 1.8GA,</div><div>Here is the code,</div><div>
<p>StatusUpdateData userupdate =3D <span>statusRepo</span>.getlatestStatusU=
pdate(username);</p>
<p><span> </span><span> </span><span> </span><span>if</span>(<span>null</sp=
an> =3D=3D userupdate) {</p>
<p><span> </span><span> </span><span> </span><span> </span>error.append(<sp=
an>"No user found"</span>);</p>
<p><span><span> </span><span> </span><span> </span><span> </span></span>ret=
urn<span> </span>null<span>;</span></p>
<p><span> </span><span> </span><span> </span>}</p>
<p><span> </span><span> </span><span> </span>StatusUpdate newUpdate =3D <sp=
an>new</span> StatusUpdate(statusupdate);</p>
<p><span> </span><span> </span><span> </span>User user =3D userupdate.getUs=
er();</p>
<p><span> </span><span> </span><span> </span><span>if</span>(<span>null</sp=
an> =3D=3D user) {</p>
<p>return<span> </span>null<span>;</span></p>
<p><span> </span><span> </span><span> </span>}</p>
<p><span> </span><span> </span><span> </span>newUpdate.setAddedBy(user);</p=
>
<p><span> </span><span> </span><span> </span>StatusUpdate oldupdate =3D use=
rupdate.getUpdate();</p>
<p><span> </span><span> </span><span> </span><span>if</span>(<span>null</sp=
an> !=3D oldupdate) {</p>
<p><span> </span><span> </span><span> </span><span> </span>newUpdate.setSta=
tus(oldupdate);</p>
<p><span> </span><span> </span><span> </span><span> </span></p>
<p><span> </span><span> </span><span> </span>}</p></div><div><br></div><div=
>Here is my NodeEntity class,</div><div>
<p><span>public</span> <span>class</span> StatusUpdate {</p>
<p>.....</p>
<p><span>@RelatedTo</span>(type=3D<span>"NEXT"</span>, direction =
=3D Direction.<span>OUTGOING</span>)</p>
<p><span> </span>StatusUpdate <span>status</span>;</p>
<p><span> </span></p>
<p><span> </span><span>@RelatedTo</span>(type=3D<span>"STATUS"</s=
pan>, direction =3D Direction.<span>INCOMING</span>)</p>
<p><span> </span>User <span>addedBy</span>;</p></div><div>.....</div><div>}=
</div><div><br></div><div>Here is the query on repository which am using in=
first line above,</div><div>
<p><span>@Query</span><span>(</span>"START user=3Dnode:search(username=
=3D{0}) MATCH user-[r?:STATUS]-update return update, user"<span>)</spa=
n></p>
<p><span> </span>StatusUpdateData getlatestStatusUpdate(String username);</=
p></div><div>Here is my StatusUpdateData MapResult</div><div><br></div><div=
>
<p>@MapResult</p>
<p><span>public</span> <span>interface</span> StatusUpdateData {</p>
<p><br></p>
<p><span> </span>@ResultColumn<span>(</span><span>"update"</span>=
<span>)</span></p>
<p><span> </span>StatusUpdate getUpdate();</p>
<p><span> </span></p>
<p><span> </span>@ResultColumn<span>(</span><span>"user"</span><s=
pan>)</span></p>
<p><span> </span>User getUser();</p>
<p><span> </span></p>
<p>}</p><div>Kindly let me know if i have missed something here...</div><di=
v><br></div><div>With all above code, am trying to achieve the below cypher=
query, I had to re-write the code in SDN, as i was not sure how to create =
index for new node in below query,</div>
<div><br></div><div>
<p><span>@Query</span><span>(</span>"START n=3Dnode:search(username=3D=
{0}) MATCH n-[r?:STATUS]->oldsu DELETE r "<span> +</span></p>
<p><span><span> </span><span> </span><span> </span></span>"WITH n,olds=
u "<span> +</span></p>
<p><span><span> </span><span> </span><span> </span></span>"CREATE n-[:=
STATUS]->(newsu {statusid:{1},statusUpdate:{2},postedDate:{3},__type__:&=
#39;org.netvogue.server.neo4japi.domain.StatusUpdate'}) "<span> +<=
/span></p>
<p><span><span> </span><span> </span><span> </span></span>"WITH newsu,=
oldsu CREATE newsu-[:NEXT]->oldsu WHERE oldsu <> null RETURN news=
u"<span>)</span></p>
<p><span> </span></p></div><div><div class=3D"h5"><br><div class=3D"gmail_q=
uote">On Thu, Oct 11, 2012 at 6:33 PM, Michael Hunger <span dir=3D"ltr"><=
;<a href=3D"mailto:michael.hun...@neotechnology.com" target=3D"_blank">mich=
ael.hun...@neotechnology.com</a>></span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div style=3D"word-wrap:break-word">Yes,=A0<=
div><br></div><div>the old relationship should be deleted, (aka an outgoing=
relationship named "s" from the current user to another status.<=
/div>
<div><br></div><div>What versions do you use?</div><div><br></div><div>Can =
you show the code where you change the relationship?</div><div><br></div><d=
iv>Thanks</div><div><br></div><div>Michael</div><div><br><div><div>Am 11.10=
.2012 um 14:55 schrieb Abdul Azeez Shaik:</div>
<br><blockquote type=3D"cite"><div><div>Any reply on this?<br><br><div clas=
s=3D"gmail_quote">On Thu, Oct 11, 2012 at 12:40 AM, Abdul Azeez Shaik <span=
dir=3D"ltr"><<a href=3D"mailto:azeeztechni...@gmail.com" target=3D"_bla=
nk">azeeztechni...@gmail.com</a>></span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Hi,<div><br></div><div>I have a following No=
deEntity,</div><div>Class User {</div><div>Status s;</div><div>}</div><div>
<br></div><div>I have created a new user and added a status to s'. Ever=
ything worked fine.</div><div>
Next time i got the user and added a new status to 's'. What is the=
intended behavior?</div><div><br></div><div>I was expecting that old relat=
ionship with old 's' will get deleted and new relationship will get=
established with new 's'.</div>
<div>However, right now, old relationship is still intact and new relations=
hip is being created.</div><div><br></div><div>Can you please let me know i=
f it is intended behavior? If yes, then how do i achieve the removing old o=
ne and adding new one in one query, otherwise, i have to first remove the o=
ld one and add new one in another query.</div>
<div><br></div><div>Kindly suggest.</div><div><br></div><div>Thanks,</div><=
div>Abdul</div><div><br></div>
</blockquote></div><br><div><br></div></div></div>
-- <br>
=A0<br>
=A0<br>
</blockquote></div><br></div></div>
<p></p>
-- <br>
=A0<br>
=A0<br>
</blockquote></div><br></div></div></div>
</blockquote></div><br></div>
--f46d042ef5b91f73f204cbc960e8--