gpt4 book ai didi

java - 刷新模式 hibernate 实用程序

转载 作者:行者123 更新时间:2023-12-01 12:10:22 25 4
gpt4 key购买 nike

我尝试了解不同 hibernate FlushMode之间的区别。为此,我创建了一个插入的小示例。

    session.beginTransaction();
session.setFlushMode(FlushMode.AUTO);// I tried ALWAYS AND MANUAL
for (int i = 1; i < 4; i++) {
Stock stock = new Stock();
stock.setStockId(i);
stock.setStockCode("code-"+i);
stock.setStockName("name-"+i);

session.save(stock);
System.out.println("entity saved");
}

session.getTransaction().commit();

问题是我总是有与flushMode 设置为COMMIT 相同的行为。

entity saved
entity saved
entity saved
insert into stock (STOCK_CODE, STOCK_NAME, STOCK_ID) values (?, ?, ?)
insert into stock (STOCK_CODE, STOCK_NAME, STOCK_ID) values (?, ?, ?)
insert into stock (STOCK_CODE, STOCK_NAME, STOCK_ID) values (?, ?, ?)

当我期待着

entity saved
insert into stock (STOCK_CODE, STOCK_NAME, STOCK_ID) values (?, ?, ?)
entity saved
insert into stock (STOCK_CODE, STOCK_NAME, STOCK_ID) values (?, ?, ?)
entity saved
insert into stock (STOCK_CODE, STOCK_NAME, STOCK_ID) values (?, ?, ?)

有人能解释为什么我总是得到相同的结果吗?

最佳答案

FlushMode.COMMIT 的文档:当调用 Transaction#commit 时, session 将被刷新。

如果您在循环内提​​交事务,结果应该是您期望的结果。

问候慢

关于java - 刷新模式 hibernate 实用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27313964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com