java - LocalContainerEntityManagerFactoryBean 无法转换为 EntityManagerFactory

标签 java spring hibernate spring-data-jpa

我不明白,到底发生了什么!

突然间,简单的事情停止工作了!

现在我正在尝试定义类似这里的东西 http://docs.spring.io/spring-data/jpa/docs/1.10.6.RELEASE/reference/html/#jpa.java-config

我得到以下编译错误

incompatible types: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean cannot be converted to javax.persistence.EntityManagerFactory

这是正确的,因为 LocalContainerEntityManagerFactoryBean没有实现 EntityManagerFactory ,这是 JpaTransactionManager#setEntityManagerFactory() 所要求的方法。

为什么官方示例包含完全错误的代码段?怎么可能,这段代码已经为我编译了一段时间?

我弄坏了什么?

更新

我能够重写

txManager.setEntityManagerFactory(entityManagerFactory());

txManager.setEntityManagerFactory(entityManagerFactory().getObject());

所以这是文档中的错误?

最佳答案

是的,文档有误

使用此代码将实体管理器工厂注入(inject) txManager

@Bean @Autowired public PlatformTransactionManager transactionManager(EntityManagerFactory factory) {
    JpaTransactionManager txManager = new JpaTransactionManager();
    txManager.setEntityManagerFactory(factory);
    return txManager;
}

关于java - LocalContainerEntityManagerFactoryBean 无法转换为 EntityManagerFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41617562/

相关文章:

java - Spring - 服务层方法通用与特定

java - 外键作为 OpenJPA 中复合主键和 ManyToOne 关系的一部分

java - 即使添加了 Hibernate,它也没有被导入

java - 在mongodb子文档中查找

java - java 套接字(服务器)和 C++ 套接字(客户端)之间的网络通信

java - Java EE下的DMS(Document Management System)/File Repository/File Manager

使用 Hibernate : validation not happening on update 进行 Spring Bean 验证

java - 如何在 Spring 的一个 ConstraintValidator 中同时验证 @PathVariable 和 @RequestBody?

java - (重新)命名 Spring Boot HealthIndicator

java - JUnit、JPA、Hibernate 和 Postgres : How to test?