【问题标题】:How to ignore field on @OneToMany如何忽略@OneToMany 上的字段
【发布时间】:2020-11-19 05:25:52
【问题描述】:

我有两个实体,第一个有一个映射为 @OneToMany 的第二个列表。

问题是,第二个实体有一些关于文件的信息和文件中的 BLOB 字段,我需要从第二个实体获取文件信息,但我不想获取 BLOB,因为那太重。

有没有办法隐藏 BLOB 字段以自动查找 @OneToMany,而我仍然可以在需要时将其作为普通字段保留?

【问题讨论】:

  • 既然没有字节码检测就不能让 blob 变得懒惰,我不会将 blob 添加到实体类中。
  • 大量讨论。 google.com/…

标签: java hibernate blob


【解决方案1】:

您可以通过应用下一个注释将您的 BLOB 字段标记为延迟加载:

@Basic(fetch = FetchType.LAZY)

【讨论】:

  • 延迟加载单个字段需要字节码检测,即上述注释本身将无效。
【解决方案2】:

您可以简单地使用@OneToMany(fetch = FetchType.LAZY),但如果会话已关闭并且您想获取 Blob,它将无法正常工作。因此,要初始化惰性对象,您需要使用 Hibernate.initalize()@Transactional 注释。您也可以在事务之外获取 blob。

【讨论】:

    猜你喜欢
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    相关资源
    最近更新 更多