Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
Java Spring数据Neo4j(SDN)查询参数不使用转换器_Java_Spring_Neo4j_Spring Data_Spring Data Neo4j - Fatal编程技术网

Java Spring数据Neo4j(SDN)查询参数不使用转换器

Java Spring数据Neo4j(SDN)查询参数不使用转换器,java,spring,neo4j,spring-data,spring-data-neo4j,Java,Spring,Neo4j,Spring Data,Spring Data Neo4j,我希望能够将一组完全限定的类名存储为节点的属性。给定此节点: @NodeEntity public TestNode { Set<Class<?>> classSet; //getters and setters here } 和以下自定义转换器: public class ClassToStringConverter implements Converter<Class<?>, String> { @Override pub

我希望能够将一组完全限定的类名存储为节点的属性。给定此节点:

@NodeEntity
public TestNode {
  Set<Class<?>> classSet;

  //getters and setters here
}
和以下自定义转换器:

public class ClassToStringConverter implements Converter<Class<?>, String> {
  @Override 
  public String convert(final Class<?> source) {
    return source.getName();
  }
}

public class StringToClassConverter implements Converter<String, Class<?>> {
  @Override 
  public String convert(final String source) {
    Class<?> returnVal = null;
    try {
      returnVal = Class.forName(source);
    } catch (ClassNotFoundException e) { }
    return returnVal;
  } 
}
我使用Spring上下文注册转换器,如下所示:

<bean id="conversionService" 
  class="org.springframework.context.support.ConversionServiceFactoryBean">
  <property name="converters">
    <set>
      <bean class="my.package.ClassToStringConverter"/>
      <bean class="my.package.StringToClassConverter "/>
    </set>
  </property>
</bean>
然后使用我的存储库,我可以正确地保存和检索节点,它使用我的自定义转换器按照预期存储完全限定的类名。但是,我希望能够在我的存储库中按类名进行查询:

@Query("MATCH (m:TestNode) where {0} in m.classSet return m;")
public findByClassInClassSet(Class<?> clazz);
但是,这似乎是使用Class.toString而不是使用我的转换器来转换类。因此,它正在搜索字符串类my.package.TestNode,而不是转换器正确存储为my.package.TestNode的内容

我是错过了什么还是做错了什么?如果不能使用类类型进行查询,如何从这些转换器中获益


注意:请原谅任何打字错误-此代码位于断开连接的网络上,因此我无法复制粘贴。如果有任何拼写错误,我向您保证这不是我实际代码的问题。

应该在衍生查找程序的下一个里程碑版本中修复


对于带注释的查询方法,SDN无法知道您的参数所指的是什么,因此它将永远无法转换它。

谢谢@Michael Hunger。请看我提出的这个要求。