【问题标题】:jpa with limited tables/ fields compared to actual table与实际表相比,表/字段有限的 jpa
【发布时间】:2017-02-01 14:03:15
【问题描述】:

如果我有一个包含大量表和每个表中的大量字段的数据库,但是我只需要处理少数表,并且其中的字段很少。

我可以制作“抓取”的 JPA 实体并仍然让 hibernate/jpa 使用它吗?

fx:如果我使用具有 10 个不同字段的表,但我只需要在其中 2 个字段上执行“获取”操作,并且永远不会更改/更新任何内容 - 只读

  • 我可以创建一个实体类,它只包含 2 个字段,还是我需要添加所有字段才能工作,但 80% 从未使用/读取?

数据库:

表名 = 测试

+------+------+------+------+------+
|field1|field2|field3|field4|field5|
+------+------+------+------+------+
|      |      |      |      |      |
+------+------+------+------+------+

java 实体

@Entity
public class test {
  private String field1;
  private String field2;
}

这样行吗?

【问题讨论】:

    标签: java spring hibernate jpa spring-boot


    【解决方案1】:

    您不需要为每个表创建实体或为每个列创建字段,因此您提出的解决方案应该可以工作。

    但是,有些遗留表可能会有点烦人,例如,如果您有复合主键和外键,但几乎所有事情都是可行的,只要您知道如何使用 JPA 对其进行建模。

    【讨论】:

    • 要添加到这个答案,请务必将实体标记为@Immutable,因为这些实体被认为是只读的,以避免意外更改数据时出错。
    • 请注意,@Immutable 是特定于 Hibernate 的,但如果您需要纯 JPA,@Column(updatable=false, insertable=false, ...) 也可以解决问题
    猜你喜欢
    • 2021-05-28
    • 2011-02-06
    • 2022-12-08
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 2017-08-20
    相关资源
    最近更新 更多