如果有人已经回答了这个特定的问题,但我还没有找到我的问题的答案,那么请提前抱歉。
我正在开发一个应用程序(不,我不能提供代码,因为它是一份工作,所以我很抱歉那个),它使用 DAO 和 Hibernate 和 POJO 以及所有用于通信和写入数据库的东西。假设我在调用 Session.flush() 时没有大量数据要检查,这对于应用程序来说效果很好。话虽如此,有一个页面,用户可以在其中向产品添加任意数量的项目,并且有一个特殊情况,其中有 25 个项目。每个项目大约有 8 个字段,它们都存储在数据库中。当我调用刷新时,它确实将所有内容保存到数据库中,但需要 FOREVER 才能完成。我打电话的三行是:
merge(myObject);
Session.flush();
Session.refresh(myObject);
我已经尝试了许多不同的组合来解决这个问题和许多不同的解决方案,所以回来说“不要使用flus()”并没有太大帮助,因为 saveOrUpdate() 和其他休眠会话没有t 似乎工作。我能想到的唯一解决方案是废弃整个项目(我们得到的代码是继承的,至少可以说写得不好),或者告诉用户社区接受它。
我对 Hibernate API 的理解是,如果你想将数据写入数据库,它会对每个项目进行检查,如果有差异,它会创建一个更新查询队列,然后运行查询。似乎每次都在更新此数据,因为即使其他值未更改,我的数据库中的“DATE_CREATED”列也是不同的。
我想知道是否有另一种方法可以防止提交如此大量的数据,或者是否有一种方法可以从“检查”休眠中排除该特定列,所以如果我只进行更改,我就不必提交所有 25 个项目到 1?
提前致谢。
麦克风