neo4j Cypher查询 - 更新仅更改字段

时间:2015-07-13 07:54:14

标签: java jsp spring-mvc neo4j

这是一个非常简单的问题,我真的不明白该怎么做。我有一个表单,用户可以在其中更新信息,该信息需要在数据库中更新。我一直得到异常无效的数据访问资源使用情况,我知道我的查询有问题。我正在使用neo4j数据库。任何人都可以帮助更新数据库中对象的字段。任何帮助将不胜感激。

我的表格:

<form:form action="dogEdited" method="get">
    <label for="usr">Name:</label>
    <input type="text" class="form-control" value="${updateDog.getName()}" name="name"><br>
    <label for="usr">Weight (lb):</label>
    <input type="text" class="form-control" value="${updateDog.getWeight()}" name="weight"><br>
    <label for="usr">Heartbeat (b/min):</label>
    <input type="text" class="form-control" value="${updateDog.getHeartbeat()}" name="heartbeat"><br>
    <input type="hidden" name="id" value="${updateDog.getId()}"/>
    <div style="text-align: center; display: block;"><input type="submit" class="btn-success" value="Enter" /></div>
</form:form>

我的控制器:

@RequestMapping(value = "/dogEdited", method = RequestMethod.GET)
    public String editDog(@RequestParam("id") Long id, @ModelAttribute CreateDogs updatedDog,ModelMap model, HttpServletResponse response){
        repo.updateByID(updatedDog);

        return "displayInfo";
    }

我在数据库中的查询(出现问题的地方):

@Query(value="start n=node({dog}.getId()) set n.weight={dog}.getWeight();")
    void updateByID(@Param("dog") CreateDogs dog);

我想要做的是使用作为参数传入的对象更新所有字段或任何更改的字段。

1 个答案:

答案 0 :(得分:0)

您不能在cypher中调用方法,因为Cypher对POJO或Java对象一无所知。

e.g。 new profile.simple.MyClass()

我建议只传递{dog}.getId()id的两个参数或weight的地图。

然后你可以这样做:

{id:3345, weight:24}