混合弹簧数据jpa +弹簧数据neo4j。 users服务
我有一个简单的弹簧引导项目与JPA存储库存储用户和AUTHORITIES信息弹簧安全和存储LOG事件。该项目工作正常。现在我想添加包含neo4j的额外功能。我将spring-data-neo4j添加到项目中,并为neo4j创建了我的配置。混合弹簧数据jpa +弹簧数据neo4j。 users服务
@EnableTransactionManagement
@EnableScheduling
@Configuration
@EnableNeo4jRepositories(basePackages = "com.mycompany.analytics.graph.repository")
public class Neo4jConfig extends Neo4jConfiguration {
public static final String URL = System.getenv("NEO4J_URL") != null ? System.getenv("NEO4J_URL") : "http://neo4j:[email protected]:7474";
@Bean
public org.neo4j.ogm.config.Configuration getConfiguration() {
org.neo4j.ogm.config.Configuration config = new org.neo4j.ogm.config.Configuration();
config
.driverConfiguration()
.setDriverClassName("org.neo4j.ogm.drivers.http.driver.HttpDriver")
.setURI(URL);
return config;
}
@Override
public SessionFactory getSessionFactory() {
return new SessionFactory(getConfiguration(), "com.mycompany.analytics.graph.repository");
}
}
以前我有我的用户存储库来存储用户信息,关系数据库
/**
* Spring Data JPA repository for the User entity.
*/
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findOneByActivationKey(String activationKey);
List<User> findAllByActivatedIsFalseAndCreatedDateBefore(ZonedDateTime dateTime);
Optional<User> findOneByResetKey(String resetKey);
Optional<User> findOneByEmail(String email);
Optional<User> findOneByLogin(String login);
Optional<User> findOneById(Long userId);
@Override
void delete(User t);
}
在UserService林注射库
@Service
@Transactional
public class UserService {
....
@Inject
private UserRepository userRepository;
....
当我跑我得到了应用和错误,因为用户存储库试图在JPA存储库中使用Neo4j数据库。
是否有任何选项可以整合spring-data-neo4j而不影响现有的JPA基础结构。
由于
为Spring Data Commons参考指南包含关于如何使用两个弹簧数据项目,如两个Neo4j的和JPA,同时指令。看看你如何去做。如果您遇到任何问题,请告知我们。
感谢您的提示! – silvestrelosada
根据文档,这是足够的添加此: @EnableJpaRepositories(basePackages =“com.mycompany.repositories.jpa”) @ EnableNeo4jRepositories(basePackages =“com.mycompany.repositories.neo4j”) 我试过了,但jpa存储库使用neo4j配置 – silvestrelosada
现在我可以使用这两个存储库。然而,jpa版本库给我提供了一些交易问题,并且存在一些初始化异常。 **未能延迟初始化角色集合:com.company.analytics.domain.User.authorities,无法初始化代理 - 无会话** – silvestrelosada
除了*,Neo4j社区还拥有一个Slack Channel--强烈建议加入。详情:https://neo4j.com/blog/public-neo4j-users-slack-group/ –