I'm migrating from spring-data-neo4j version 4.1 to 4.2.
On the application startup I'm getting an error:
Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.neo4j.ogm.session.Session' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
repository.ActivityRecordRepository.java:
public interface ActivityRecordRepository extends GraphRepository<ActivityRecord>, ActivityRecordRepositoryCustom {}
repository.ActivityRecordRepositoryCustom.java:
public interface ActivityRecordRepositoryCustom {
...
}
repository.impl.ActivityRecordRepositoryImpl.java:
public class ActivityRecordRepositoryImpl implements ActivityRecordRepositoryCustom {
private final Session session;
public ActivityRecordRepositoryImpl(Session session) {
this.session = session;
}
....
}
My configuration:
@ComponentScan
@Configuration
@EnableNeo4jRepositories("com.example.repository")
@EnableTransactionManagement
public class ApplicationConfiguration {
....
@Bean
public EventListener eventListener() {
return new CustomEventListener();
}
@Bean
public SessionFactory getSessionFactory() {
final SessionFactory sessionFactory = new SessionFactory(databaseConfiguration, "com.example.entity");
sessionFactory.register(eventListener());
return sessionFactory;
}
}
How to properly autowire session object to custom repository implementation?
I'm using:
Spring Version: 4.3.2.RELEASE
Spring Data Neo4j Version: 4.2.11.RELEASE