作为标题,Spring Data Neo4j
不会执行正确的派生查询。让我用一个例子来澄清这个概念。我有以下课程
@RelationshipEntity
public class MashupToMashupSimilarity {
private float score;
//GETTER AND SETTER
}
并访问类的对象我使用简单的存储库类
public interface MashupToMashupSimilarityRepository extends
GraphRepository<MashupToMashupSimilarity> {
public Set<MashupToMashupSimilarity> findByScoreGreaterThan(float score);
}
当我执行上述方法时,记录器显示以下查询
DEBUG [CypherQueryEngine] - Executing cypher query: START `mashupToMashupSimilarity`=node:__types__(className="package.MashupToMashupSimilarity") WHERE `mashupToMashupSimilarity`.`score`! > {0} RETURN `mashupToMashupSimilarity` params {0=0.1}
请注意,它使用node:__types__
作为索引,而应使用rel:__rel_types__
;所以,它总是返回一个空的结果集。 OTH,如果我执行查询用正确的索引替换错误的索引,则返回正确的结果。
奇怪的是,调用MashupToMashupSimilarityRepository#findAll()
(或#count()
或从上述存储库继承的其他继承方法)结果集非空。但是,我不知道哪种查询已被执行,因为ATM我还没有找到记录查询的方法。
这是一个错误还是我遗漏了什么?我使用以下版本而且我无法升级它们
<spring.version>3.1.2.RELEASE</spring.version>
<spring-data-neo4j.version>2.1.0.RELEASE</spring-data-neo4j.version>
<neo4j.version>1.9.M02</neo4j.version>