[英]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.