I am trying to connect to two MySQL data sources and Neo4j . I tried using this example , but I have different versions of the dependencies.
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>easy-notes</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>easy-notes</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.M7</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <neo4j-ogm.version>3.0.0</neo4j-ogm.version> <spring-data-releasetrain.version>Kay-RELEASE</spring-data-releasetrain.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-neo4j</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.neo4j</groupId> <artifactId>neo4j-ogm-bolt-driver</artifactId> <version>${neo4j-ogm.version}</version> </dependency> <dependency> <groupId>org.neo4j</groupId> <artifactId>neo4j-jdbc-driver</artifactId> <version>3.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </project>
my class is DatastoresConfiguration:
@Configuration @EnableJpaRepositories(basePackages = "com.example.easynotes.repository.relational") @EnableNeo4jRepositories(basePackages = "com.example.easynotes.repository.graph") @EnableTransactionManagement public class DatastoresConfiguration { @Bean public org.neo4j.ogm.config.Configuration configuration(){ return new org.neo4j.ogm.config.Configuration.Builder().uri("bolt://127.0.0.1") .credentials("neo4j","123456").build(); } @Bean public SessionFactory sessionFactory(){ return new SessionFactory(configuration(), "com.example.easynotes.models.graph"); } @Bean public Neo4jTransactionManager neo4jTransactionManager(){ return new Neo4jTransactionManager(sessionFactory()); } @Bean public Session getSession() { return neo4jTransactionManager().getSessionFactory().openSession(); } @Primary @Bean(name = "dataSource") @ConfigurationProperties(prefix = "spring.datasource") public DataSource dataSource() { return DataSourceBuilder .create() .driverClassName("com.mysql.jdbc.Driver") .build(); } @Primary @Bean @Autowired public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) { LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean(); entityManagerFactory.setDataSource(dataSource); entityManagerFactory.setPackagesToScan("com.example.easynotes.repository.relational"); entityManagerFactory.setJpaDialect(new HibernateJpaDialect()); Map<String, String> jpaProperties = new HashMap<>(); jpaProperties.put("hibernate.connection.charSet", "UTF-8"); jpaProperties.put("spring.jpa.hibernate.ddl-auto", "none"); jpaProperties.put("spring.jpa.hibernate.naming-strategy", "org.springframework.boot.orm.jpa.SpringNamingStrategy"); jpaProperties.put("hibernate.bytecode.provider", "javassist"); jpaProperties.put("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect"); jpaProperties.put("hibernate.hbm2ddl.auto", "none"); jpaProperties.put("hibernate.order_inserts", "true"); jpaProperties.put("hibernate.jdbc.batch_size", "50"); entityManagerFactory.setJpaPropertyMap(jpaProperties); entityManagerFactory.setPersistenceProvider(new HibernatePersistenceProvider()); return entityManagerFactory; } @Autowired @Primary @Bean(name = "mysqlTransactionManager") public JpaTransactionManager mysqlTransactionManager(LocalContainerEntityManagerFactoryBean entityManagerFactory) throws Exception { return new JpaTransactionManager(entityManagerFactory.getObject()); } @Autowired @Bean(name = "transactionManager") public PlatformTransactionManager transactionManager(Neo4jTransactionManager neo4jTransactionManager, JpaTransactionManager mysqlTransactionManager) { return new ChainedTransactionManager( mysqlTransactionManager, neo4jTransactionManager ); } }
first of all I get an error here
@Autowired @Primary @Bean(name = "mysqlTransactionManager") public JpaTransactionManager mysqlTransactionManager(LocalContainerEntityManagerFactoryBean entityManagerFactory) throws Exception { return new JpaTransactionManager(entityManagerFactory.getObject()); }
Could not autowire, no beans of 'LocalContainerEntityManagerFactoryBean' type found
The full project is on github
source share