2013-04-14 47 views
1

时给出以下实体来查找值属性:春天的Neo4j无法使用仓库

@NodeEntity 
public final class Foo 
{  
     @GraphId 
    private Long id; 
    @Indexed 
    private String name; 
} 

库:

public interface FooRepository extends GraphRepository<Foo> {} 

服务:

@Service 
public class FooService 
{ 
    @Autowired FooRepository fooRepo; 
    public List<Foo> searchFor() { 
     EndResult<Foo> results = fooRepo.findAllByPropertyValue("name","*"); 
       results.size();  //no results 
    } 

} 

我依靠功能该文件驻留在IndexRepository中,因为我想利用Lucene查找。但是,上述查询无法返回任何内容。

回答

2

我不认为你可以使用通配符与findAllByPropertyValue方法。也许可以使用findAllByQuery方法,你可以在哪里使用它们。我同意这应该是简单的

name:* 
+0

我同意应该那么简单。我试图强制它进入Lucene查找。 – Woot4Moo

0

:您的查询可能是这么简单。我试图强制它进入Lucene查找

如果我明白你想要什么,你不能直接查询索引?

@Autowired 
Neo4jTemplate fooTemplate; 
... 
fooTemplate.getIndex(Foo.class).query("name:*"); 

这也应该这样做,添加一个

@Query("start n=node:fooIndex(name=*)") 
Set<Foo> getAllFoos(); 

FooRepository