【发布时间】:2019-04-12 11:55:13
【问题描述】:
我正在使用 spring 和存储库级别连接到数据库。我正在使用 EntityManagerFactory 和 jpa 存储库。我的配置:
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em
= new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
em.setPackagesToScan("com.project.models");
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
return em;
}
@Bean
public PlatformTransactionManager transactionManager(
EntityManagerFactory emf){
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(emf);
return transactionManager;
}
但现在我有一个案例,我想使用 EntityManager 的 create 方法。当我使用 Jpa 存储库并且没有具体的类时,我如何获取它的实例以及在哪里实现这些方法?
我正在使用扩展 JpaRepository 的存储库:
public interface MyRepository extends JpaRepository<Chat, Integer> {
}
然后在我的服务中使用它:
@Service
public class MyServiceImpl implements MyService {
private MyRepository myRepository;
public MyServiceImpl(MyRepository myRepository) {
this.myRepository = myRepository;
}
我是否应该创建一个实现 MyRepository 的抽象类,这样我就不必实现所有 JpaRepository 的方法并在那里获取 EntityManager 的实例,我该怎么做?
【问题讨论】:
-
但现在我有一个案例,我想使用 EntityManager 的 create 方法 也许你想展示一下你会如何使用它?
-
@pirho 我只想使用 EntityManager 的创建方法而不是工厂的保存。在数据库中创建实体非常简单。使用 Jpa 存储库保存方法将创建或更新,因此如果数据库中已有实体,则不会引发异常。
-
create() = persist()?
标签: java spring hibernate jpa entitymanager