Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 弹簧数据neo4j积垢-许多可选参数?_Spring_Neo4j_Crud - Fatal编程技术网

Spring 弹簧数据neo4j积垢-许多可选参数?

Spring 弹簧数据neo4j积垢-许多可选参数?,spring,neo4j,crud,Spring,Neo4j,Crud,我将Spring-data-neo4j与一个crudepository @Repository public interface PersonRepository extends GraphRepository<Person> {} 但是,如果一个或所有参数都为null,则此操作无效。尝试使用映射和@Query注释 @Query("MATCH (u:Person) WHERE u.name = {param}.name OR u.age = {param}.age RETURN u

我将
Spring-data-neo4j
与一个
crudepository

@Repository
public interface PersonRepository extends GraphRepository<Person> {}

但是,如果一个或所有参数都为null,则此操作无效。

尝试使用映射和@Query注释

@Query("MATCH (u:Person) WHERE u.name = {param}.name OR u.age = {param}.age RETURN u")
List<Person> findDynamic(@Param("param") Map params);
@Query(“匹配(u:Person),其中u.name={param}.name或u.age={param}.age返回u”)
列出findDynamic(@Param(“Param”)映射参数);

嗨@Michael Hunger谢谢你的回复。这不完全是我所期望的,但你给了我一些很好的搜索资料

最后,我这样做:

import org.apache.commons.collections.map.HashedMap;
import com.google.common.collect.Lists;

(...)

@Autowired
private EventRepository eventRepository; //@Repository extends GraphRepository<Event>

(...)

public List<Event> findByDynamicParam(HashedMap params) {
    String query = "match (event)-[:user]-(user), (event)-[:action]-(action)";
    if (!params.isEmpty()) {
        query += " where";
    }
    if (params.containsKey("actionId")) {
        query += " id(action) = {actionId} and";
    }
    if (params.containsKey("userId")) {
        query += " id(user) = {userId} and";
    }
    if (!params.isEmpty()) {
        query = query.substring(0, query.length() - 4);
    }
    query += " return (event)";
    return Lists.newArrayList(eventRepository.query(query, params));
}
import org.apache.commons.collections.map.HashedMap;
导入com.google.common.collect.list;
(...)
@自动连线
私有事件存储库事件存储库//@存储库扩展GraphRespository
(...)
公共列表findByDynamicParam(HashedMap参数){
String query=“匹配(事件)-[:用户]-(用户),(事件)-[:操作]-(操作)”;
如果(!params.isEmpty()){
查询+=“where”;
}
if(参数containsKey(“actionId”)){
查询+=“id(action)={actionId}和”;
}
if(参数containsKey(“userId”)){
查询+=“id(user)={userId}和”;
}
如果(!params.isEmpty()){
query=query.substring(0,query.length()-4);
}
查询+=“返回(事件)”;
return Lists.newArrayList(eventRepository.query(query,params));
}
客户来电者:

HashedMap params = new HashedMap();
if (actionId != null) {
    params.put("actionId", actionId);
}
if (userId != null) {
    params.put("actionId", userId);
}
List<Event> events = eventService.findByDynamicParam(params);
HashedMap params=newhashedmap();
if(actionId!=null){
参数put(“actionId”,actionId);
}
if(userId!=null){
参数put(“actionId”,userId);
}
列表事件=eventService.findByDynamicParam(params);
你觉得怎么样?是否可以优化此功能

问候

来自巴黎的奥利维尔

HashedMap params = new HashedMap();
if (actionId != null) {
    params.put("actionId", actionId);
}
if (userId != null) {
    params.put("actionId", userId);
}
List<Event> events = eventService.findByDynamicParam(params);