【发布时间】:2021-11-12 21:55:10
【问题描述】:
我正在尝试使用以下几行从 JPA 的 EntityManager 创建 Hibernate 的 SessionFactory bean 但我得到的 EntityManger 为空。我不想扩展 JPARepository。因此在配置类中为 SessionFactory 创建 bean。
@配置
公共类 BeanConfig {
@Autowired
EntityManager entityManager;
@Bean
public SessionFactory getSessionFactory() {
if (entityManager == null) {
logger.info("EntityManager is null---");
} else {
if (entityManager.unwrap(Session.class) == null) {
return entityManager.unwrap(Session.class).getSessionFactory();
}
}
return null;
}
}
控制台中打印的记录器信息: EntityManager 为空---
pom.xml
<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-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies><br>
application.properties
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=更新
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=test
spring.datasource.password=测试
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
【问题讨论】:
标签: java configuration null javabeans entitymanager