有没有办法像 Hibernate 一样在 Neo4J 上记录查询?
Posted
技术标签:
【中文标题】有没有办法像 Hibernate 一样在 Neo4J 上记录查询?【英文标题】:Is there a way to log queries on Neo4J like Hibernate? 【发布时间】:2012-02-16 00:46:21 【问题描述】:所以,这里是场景:
我有 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
上的错误,或者我是否遗漏了什么...我查看了两者的文档,代码示例,但找不到任何东西具体的。
有什么帮助吗?谢谢!
【问题讨论】:
查询登录将被添加到下一个发布的快照/里程碑中。 您的Crew
班级是什么样的?您将什么传递给 findByNameLike 以及您在 Crew 对象中存储了哪些数据?
【参考方案1】:
如果有人在这里寻找如何在通过 REST API 远程访问 Neo4j 服务器时记录查询,请使用
<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>
【讨论】:
无论是这个还是其他答案都不适用于 log4j2。与 log4j2 有什么不同吗?【参考方案2】:您可以通过将以下行添加到您的 log4j.xml 来启用查询日志记录:
<logger name="org.springframework.data.neo4j.support.query">
<level value="debug" />
</logger>
【讨论】:
以上是关于有没有办法像 Hibernate 一样在 Neo4J 上记录查询?的主要内容,如果未能解决你的问题,请参考以下文章
使用 nolock 的 Java Hibernate HQL 查询
李彦宏称AI作画将会像拍照一样简单;马斯克考虑对推特所有用户收费 ;Neo4j 5发布|极客头条
有没有办法在javascript中创建hashmap并像添加和删除值一样操作它