【问题标题】:[Hibernate]Access Cache memory before BATCH commit[Hibernate]在 BATCH 提交之前访问缓存内存
【发布时间】:2011-12-08 16:30:54
【问题描述】:

我想在 Hibernate 中批量提交之前访问缓存。 然后我将用户数最多为 BATCH_SIZE

if (countUsers == BATCH_SIZE) {
    countUsers = 0;
    session.flush();
    session.clear();
    transaction.commit();
    session = HibernateUtil.getSessionFactory()
        .getCurrentSession();
    transaction = session.beginTransaction();
}

我正在做的是在 cahce 中存储 30 行,然后将其保存到数据库中。但在将它们保存到数据库之前,我还想要这些缓存行的信息。

怎么做?

【问题讨论】:

  • 什么意思?您想查看哪些行命中缓存以及哪些行存储在 DB 中吗?在这种情况下,像 log4j 这样的东西可能会有所帮助
  • 我不明白为什么要从缓存中访问数据,而您将在列表中使用批量提交进行迭代和提交。

标签: hibernate caching


【解决方案1】:

所有你必须设置休眠 jdbc 批处理大小属性并确保事务管理

hibernate.jdbc.batch_size=50

你可以在这个主题上看到我的previuos post

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    相关资源
    最近更新 更多