我编写了一个RepositoryEventHandler来处理Spring Data Neo4j。我已经尝试了很多不同的配置方法,但我似乎无法解决任何事件。用户数据已成功保存,但未生成任何日志或命中断点。我确信@Beans是由于启动期间产生的一些早期错误而加载的(缺少我自那以后的库)。
代码和配置如下......
@RepositoryEventHandler:
package com.test.repository.handler;
@Component
@RepositoryEventHandler(User.class)
public class UserEventHandler {
private Log logger = LogFactory.getLog(getClass());
@HandleBeforeSave
public void handleBeforeSave(User user) {
logger.debug("handle before save for " + user.getId());
}
@HandleBeforeCreate
public void handleBeforeCreate(User user) {
logger.debug("saved user " + user.getId());
}
@HandleAfterDelete
public void handleAfterDelete(User user) {
logger.debug("deleted user " + user.getId());
}
}
RepositoryConfiguration
package com.test.config;
@Configuration
public class RepositoryConfiguration {
@Bean
UserEventHandler userEventHandler() {
return new UserEventHandler();
}
@Bean
AnnotatedHandlerRepositoryEventListener repositoryEventListener() {
return new AnnotatedHandlerRepositoryEventListener(
"com.test.repository.handler");
}
}
UserRepository:
package com.test.repository;
public interface UserRepository extends PagingAndSortingRepository<User, Long> {
User findById(Long id);
}
当我寻找这个问题的解决方案时,我没有发现任何暗示@RepositoryEventHandler不能与Neo4j数据存储库一起使用的东西。我错过了什么吗?
以下是我正在使用的相关版本:
compile 'org.springframework.data:spring-data-rest-webmvc:2.2.1.RELEASE'
compile 'org.springframework.data:spring-data-neo4j:3.2.1.RELEASE'
compile 'org.springframework.data:spring-data-neo4j-rest:3.2.1.RELEASE'
compile 'org.springframework.data:spring-data-rest-repository:1.0.0.RELEASE'
compile 'com.google.guava:guava:r05'
感谢您的帮助。
答案 0 :(得分:0)
尝试注释userRepository&#34; @ RepositoryRestResource&#34; e.g
@RepositoryRestResource(collectionResourceRel = "users", path = "users")
如果这些是用户的路径。
应该针对其余存储库的其他调用调用处理程序方法,而不仅仅是应用程序中的任意crud调用。例如,如果您在应用启动期间创建了一堆用户,那么内联调用将不会调用处理程序。