--
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);
}
public class StatusUpdate {
.....
@RelatedTo(type="NEXT", direction = Direction.OUTGOING)
StatusUpdate status;
@RelatedTo(type="STATUS", direction = Direction.INCOMING)
User addedBy;
@Query("START user=node:search(username={0}) MATCH user-[r?:STATUS]-update return update, user")
StatusUpdateData getlatestStatusUpdate(String username);
@MapResult
public interface StatusUpdateData {
@ResultColumn("update")
StatusUpdate getUpdate();
@ResultColumn("user")
User getUser();
}
@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")
--
neo4jTemplate.save(newUpdate);
--