首页 > 解决方案 > 如何将列表中的单个实体映射到休眠中的字段

问题描述

我在使用休眠将版本化实体映射到单个属性时遇到了问题。

我有一张桌子:

id(long)
referenceIdentifier(uuid)
isLatestversion(boolean)

和一个表b:

id(long)
someArbitraryAttachedInfo(String)
referenceToTableA(uuid)

表 a 将具有同一对象的多个版本,不同的 id,但 referenceIdentifier 保持不变。对于任何给定的 referenceIdentifier,只有一个对象 a 的 isLatestversion 标志设置为 true(我们将从修订日志中确定最新版本)。我们希望表 b 具有 uuid,因此我们可以设置一次,而不必在更新版本的 a 可用时跟踪和更新,并在查看旧版本时查看所有相关附件。

我如何在休眠中对此建模?当我使用带有@JoinColumn 和@Where 的@M​​anyToOne 时,它​​会在表a 的uuid 上生成一个唯一约束。当我使用 @JoinFormula 时,它会生成一个 bytea 字段而不是引用列的类型。

感谢您提供的任何帮助或指示。

标签: javahibernatejpa

解决方案


推荐阅读