【问题标题】:Designing JPA entities for legacy database table with lot of columns为具有大量列的旧数据库表设计 JPA 实体
【发布时间】:2014-11-12 01:24:34
【问题描述】:

我们正在使用 Java EE、Spring、JPA 和 JSF 重写旧应用程序。这项工作处于设计的早期阶段。我们查看了现有的数据库。有几个表有很多列。其中之一有大约 800 列。计划是规范化表格和数据。

我只是想知道为具有大量列的表创建 JPA 2.0 实体是否存在上限。我知道小桌子更好。

对我应该如何进行设计有什么建议吗?

【问题讨论】:

    标签: database hibernate jpa entity jpa-2.0


    【解决方案1】:

    如果涉及到设计,您无能为力。一种简单的方法是让代码保持干净,即提取一些公共域列并从中创建@Embeddable 类。

    另一种选择是创建物化视图,其中包含要一起检索的列,并为它们创建单独的只读实体 - 这只有在您不打算向它们写入任何内容时才有效。

    AFAIK JPA 及其最大的提供者不限于表中的任意数量的列,但是在此类实体上执行诸如 findAll() 之类的操作的成本可能真的很有害。

    【讨论】:

    • 通过示例查找呢?我们可以通过使用缓存或延迟加载来获得更好的性能吗?
    • 最好同时使用它们。延迟加载可以代替将表格分成多个视图并可以写入表格。
    • 感谢 Maciej。大多数情况下,我们一次拉一张唱片。因此,我想了解您对 findByExample 性能的看法。有人告诉我,一次我们可以在 UI(前端)页面上显示此表中数据库行的最多 100 个字段。
    猜你喜欢
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 2015-02-08
    • 1970-01-01
    • 2012-11-01
    • 2016-01-02
    相关资源
    最近更新 更多