Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
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">&lt;<a href=3D"mailto:azeeztechni...@gmail.com" t=
arget=3D"_blank">azeeztechni...@gmail.com</a>&gt;</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>&quot;No user found&quot;</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>&quot;NEXT&quot;</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>&quot;STATUS&quot;</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>&quot;START user=3Dnode:search(username=
=3D{0}) MATCH user-[r?:STATUS]-update return update, user&quot;<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>&quot;update&quot;</span>=
<span>)</span></p>
<p><span>	</span>StatusUpdate getUpdate();</p>
<p><span>	</span></p>
<p><span>	</span>@ResultColumn<span>(</span><span>&quot;user&quot;</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>&quot;START n=3Dnode:search(username=3D=
{0}) MATCH n-[r?:STATUS]-&gt;oldsu DELETE r &quot;<span> +</span></p>
<p><span><span>	</span><span>	</span><span>	</span></span>&quot;WITH n,olds=
u &quot;<span> +</span></p>
<p><span><span>	</span><span>	</span><span>	</span></span>&quot;CREATE n-[:=
STATUS]-&gt;(newsu {statusid:{1},statusUpdate:{2},postedDate:{3},__type__:&=
#39;org.netvogue.server.neo4japi.domain.StatusUpdate&#39;}) &quot;<span> +<=
/span></p>



<p><span><span>	</span><span>	</span><span>	</span></span>&quot;WITH newsu,=
 oldsu CREATE newsu-[:NEXT]-&gt;oldsu WHERE oldsu &lt;&gt; null RETURN news=
u&quot;<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">&lt=
;<a href=3D"mailto:michael.hun...@neotechnology.com" target=3D"_blank">mich=
ael.hun...@neotechnology.com</a>&gt;</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 &quot;s&quot; 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">&lt;<a href=3D"mailto:azeeztechni...@gmail.com" target=3D"_bla=
nk">azeeztechni...@gmail.com</a>&gt;</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&#39;. Ever=
ything worked fine.</div><div>
Next time i got the user and added a new status to &#39;s&#39;. What is the=
 intended behavior?</div><div><br></div><div>I was expecting that old relat=
ionship with old &#39;s&#39; will get deleted and new relationship will get=
 established with new &#39;s&#39;.</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--