SDN 4.1 참조에서 Neo4jConfiguration을 확장하고 세션 객체를 @Bean으로 명시 적으로 설정하는 구성이 포함됩니다. 4.2에서, 지침은 Neo4jConfiguration을 확장하지 않고 아래의 설정을 따르는 것입니다. 명시 적으로 독립 세션 개체를 설정하는 것은 존재하지 않는다 참고 : 나는 저장소 클래스에서 세션 객체 자체 (안 공장) @Autowiring 동안 사용이 설정을 본 적이SDN 4.2 용 Autowiring Neo4j OGM 세션
@Bean
public org.neo4j.ogm.config.Configuration configuration() {
org.neo4j.ogm.config.Configuration config = new org.neo4j.ogm.config.Configuration();
config
.driverConfiguration()
.setDriverClassName("org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver")
.setURI(dbLocation);
return config;
@Bean
public SessionFactory sessionFactory() {
SessionFactory sessionFactory = new SessionFactory(configuration(), "org.my.package");
sessionFactory.register(new MyPreSaveListener());
return sessionFactory;
}
. 이것은 응용 프로그램에서 단 하나의 Session 인스턴스 만 존재한다는 것을 의미합니까? 그렇다면 세션 수명이 응용 프로그램의 "작업 단위 (UOW)"로 제한되어야한다는 아이디어에 어긋나지 않습니까?
내 저장소는 현재 사용자 지정이며 Neo4jTemplate 개체를 사용하지 않고 현재 마이 그 레이션 중이므로 neo4j repos를 확장하지 않습니다.
위의 구성을 사용하여 세션 객체를 Autowire하려고 시도했습니다. "NoSuchBeanDefinitionException : 'org.neo4j.ogm.session.Session'타입의 정규화 된 Bean이 없습니다 : autowire 후보로 자격이되는 적어도 하나의 bean이 필요합니다."SessionFactory에서 Session 인스턴스를 가져 오지 못하게 할 수있는 사항은 무엇입니까? – ramenhood
'@ EnabledNeo4jRepositories'와'@ EnabledTransactionManagement'을 가지고 있습니까? 'Session'을 autowire하는 장소가'@Component'인지 확인해야합니다. – digx1