[英]Why does Spring Data JPA + Hibernate generate incorrect SQL?
[英]Why does hibernate JPA generate a select instead of an insert?
因此,我正在调用存储库的save方法。
//Store Controller
private StoreService;
Store s = new Store();
s.setName("some store");
storeService.createStore(s);
-
//StoreServiceImpl
private StoreRepository storeRepository;
public void createStore(Store s) {
storeRepository.save(s);
}
当我查看休眠日志时,将生成一个选择。 是什么赋予了?
编辑#1
是oracle DB。 id是通过java生成的,我只是这样设置它:
String id = RandomStringGenerator.generate();
s.setId(id);
我知道了。 我需要创建一个jpaTransactionManager并在其中设置我的entityManager。 然后,我需要将jpaTransactionManager包装在TransactionProxyFactoryBean中。 然后,我需要在xml中创建StoreService bean,作为TransactionProxyFactoryBean的代理。 此后,所有保存请求均通过事务处理。
简而言之,当我尝试将事务保存到数据库中时,我没有使用事务。
由于分配了Store
ID,因此Hibernate不知道数据库中是否存在给定的id
值。
因此,默认情况下,它将针对数据库进行检查( 执行 SELECT
语句 ),以查看此Store
已存在于数据库中,然后触发INSERT
语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.