2013-04-14 44 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