Как заставить Spring Data Neo4j и Spring Data JPA работать вместе?

У меня есть приложение, которое выполняет некоторые пакетные задания, используя MySQL и, через REST, версию сервера Neo4j.

Я могу'Я не могу понять, как заставить их работать вместе: я могу заставить их работать, но не одновременно. Сообщения, которые ямы обнаружили, что не относятся к серверной версии Neo4j, и, возможно, это 'Там, где проблема, так как все остальное мне кажется нормальным.

Моя конфигурация:

JpaConfig

@Configuration
@EnableTransactionManagement(order=Ordered.HIGHEST_PRECEDENCE)
@PropertySource("META-INF/database.properties")
@ImportResource("classpath*:META-INF/repository.xml")
public class JpaConfig {
@Autowired
Environment env;

@Bean(destroyMethod = "close")
public DataSource dataSource() {
    DataSource dataSource = new DataSource();
    dataSource.setDriverClassName(env.getProperty("database.driverClassName"));
    dataSource.setUrl(env.getProperty("database.url"));
    dataSource.setUsername(env.getProperty("database.username"));
    dataSource.setPassword(env.getProperty("database.password"));
    dataSource.setTestOnBorrow(true);
    dataSource.setTestOnReturn(true);
    dataSource.setTestWhileIdle(true);
    dataSource.setTimeBetweenEvictionRunsMillis(1800000);
    dataSource.setNumTestsPerEvictionRun(3);
    dataSource.setMinEvictableIdleTimeMillis(1800000);
    dataSource.setValidationQuery("SELECT 1");
    return dataSource;
}

@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
    LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
    entityManagerFactory.setDataSource(dataSource());
    entityManagerFactory.setPackagesToScan("it.smartblue.mcba.domain");
    entityManagerFactory.setJpaDialect(new HibernateJpaDialect());
    Map jpaProperties = new HashMap();
    jpaProperties.put("hibernate.connection.charSet", "UTF-8");
    jpaProperties.put("hibernate.ejb.naming_strategy", "org.hibernate.cfg.EJB3NamingStrategy");
    jpaProperties.put("hibernate.bytecode.provider", "javassist");
    jpaProperties.put("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect");
    entityManagerFactory.setJpaPropertyMap(jpaProperties);
    entityManagerFactory.setPersistenceProvider(new HibernatePersistence());
    return entityManagerFactory;
}

@Bean
public PlatformTransactionManager transactionManager() {
    JpaTransactionManager transactionManager = new JpaTransactionManager();
    transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
    return transactionManager;
}

@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
    return new PersistenceExceptionTranslationPostProcessor();
}
}

Neo4j.xml




    


С этой конфигурацией Mysql работает отлично, но Neo4j неt сохранить любое свойство в узлах, которые оно создает.

Если я удалю атрибутentityManagerFactory="entityManagerFactory" Neo4j работает, но я могунаписать в MySQL.

Мои методы обслуживания помечены@Transactional или же@Neo4jTransactionalне оба одновременно.

Внутри классаorg.springframework.data.neo4j.rest.SpringRestGraphDatabase дляgraphDatabaseService боб I 'мы нашли:

@Override
public Transaction beginTx() {
    // return super.beginTx();
    return new NullTransaction();
}

@Override
public TransactionManager getTxManager() {
    return new NullTransactionManager();
}

Может быть это'работа в процессе? Или, может быть, я что-то упустил ... Я

м с использованием Spring 3.1.2, Hibernate 4.1.4. Вот часть моего pom.xml.


    org.springframework.data
    spring-data-jpa
    1.2.0.RC1
 
  
    
        org.springframework.data
        spring-data-neo4j
        2.1.0.RC4
    
    
        org.springframework.data
        spring-data-neo4j-rest
        2.1.0.RC4
    
    
        org.springframework.data
        spring-data-neo4j-cross-store
        2.1.0.RC4
    

Ответы на вопрос(1)

Ваш ответ на вопрос