有没有办法像Hibernate一样在Neo4J上记录查询?

时间:2012-01-22 02:54:21

标签: nosql neo4j spring-data spring-data-neo4j

所以,这是场景:

  • 我在本地运行Neo4J服务器,其中包含一些数据
  • 我使用spring-data-neo4j
  • 创建了一个网络应用

以下代码基于示例代码Cineasts

public interface CrewRepository extends GraphRepository<Crew> {

  Iterable<Crew> findByNameLike(String name);

  @Query("start thinker=node({0}) match thinker-[:crews]-crews return crews")
  Set<Crew> findByThinker(Long thinkerId);

}

这里没有新闻。问题是:查询findByNameLike无效,而findByThinker无效。

我已多次修改我的日志配置文件 - 最终版本如下 - 但是,无论我尝试什么,我都看不到任何查询被记录 - 无论是在我的日志文件还是在服务器上。

<logger name="org.neo4j">
  <level value="DEBUG" />
  <appender-ref ref="console" />
</logger>

<logger name="org.springframework.data.neo4j">
  <level value="DEBUG" />
  <appender-ref ref="console" />
</logger>

<root>
  <priority value="error" />
  <appender-ref ref="console" />
</root>

所有我想要的是记录查询,所以我可以看到它是spring-data-neo4j上的错误还是我错过了什么......我已经查看了两者的文档,代码示例,但不能找到任何具体的东西。

有任何帮助吗?谢谢!

2 个答案:

答案 0 :(得分:5)

您可以通过将以下行添加到log4j.xml来启用查询日志记录:

<logger name="org.springframework.data.neo4j.support.query">
    <level value="debug" />
</logger>

答案 1 :(得分:3)

如果有人在这里寻找如何在通过REST API远程访问Neo4j Server时记录查询,请使用

<logger name="org.springframework.data.neo4j.rest.SpringRestCypherQueryEngine">
    <level value="debug" />
</logger>

如果您正在使用Spring Data Neo4j并希望查看与您的DAO方法相对应的派生查询,

<logger name="org.springframework.data.neo4j.repository.query.DerivedCypherRepositoryQuery">
    <level value="debug" />
</logger>