【问题标题】:How to SetFetchSize throughout application in java Hibernate如何在 java Hibernate 中的整个应用程序中设置 FetchSize
【发布时间】:2018-07-23 10:02:58
【问题描述】:

在我开发的一个 spring 应用程序中,有 30 个 dao 类 考虑下面的代码

public void getBulkData(List<Integer> patients, Date start)
{
        Criteria criteria = getSession()
          .createCriteria(DafCondition.class, "condition")
          .createAlias("condition.patient", "dp")
          .setFetchSize(100000);
}

我的应用程序中有大约 30 个与此类似的 dao 类,我如何一次性为整个应用程序中的所有条件设置 FetchSize(100000)?

谢谢

【问题讨论】:

  • 你不知道。您可以为 DAO 重构代码以共享相同的公共基础,或者使用静态 utis 来设置所需的参数。但无论如何,每个课程都会以一种或另一种方式进行编辑。
  • 因为当有大约 10 个 DAO 类时,这会变得很乏味。我会试试这个,但每个类都必须进行不同的编辑,这样就达不到目的

标签: java spring hibernate spring-mvc dao


【解决方案1】:

您提到“一次性”设置值的动机是什么? 是否纯粹从维护的角度来看,您想在一个地方和任何地方改变它所反映的价值?如果是,只需将值 100000 作为常量移动到静态类/接口中并在任何地方使用它。

【讨论】:

  • Nah OP 只是不想在 30 个类中做出明显的改变——我认为写这个问题比实际进行重构花费更多的时间和精力。以你提议的方式。
【解决方案2】:

您可以通过添加 fetchsize 扩展 Session 并覆盖 createCriteria 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多