向 hibernate JoinTable 添加附加属性

2023-12-15

我有两个实体:消息和用户。用户与消息具有多对多关系(一个用户可以拥有多条消息),并且消息(目前,为了使其不那么复杂)与用户具有多对多关系(一条消息可以发送给多个用户)。

我使用 @JoinTable 连接两个实体,但是,我想在连接表中添加一个“状态”列,以判断消息是否是新消息、已读消息等。我正在考虑将该列放入消息实体中,但是,我认为这可能是不可能的。

我看到这个问题的很多答案都说使用中介实体,但如果可能的话我想避免这种情况。

有人对我的问题有任何可能的解决方案吗?


JPA 2.0(即 Hibernate 3.5 及更高版本)引入了对三元关系建模的支持:Maps。例如,您可以执行以下操作(尽管如果您需要双向关系,我不确定如何处理另一方):

public enum MessageStatus { READ, UNREAD }

public class User {
    ...

    @ElementCollection
    @CollectionTable(name = "MessagesToUsers", joinColumns = @JoinColumn(name = "userId"))
    @Column(name = "messageStatus")
    @MapKeyJoinColumn(name = "messageId")
    private Map<Message, MessageStatus> messages = new HashMap<Message, MessageStatus>();

    ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向 hibernate JoinTable 添加附加属性 的相关文章

随机推荐

  • Backbone.js fetch() JSON 到模型 get() 返回未定义

    基本上我想获取一个JSON文件并将其存储在模型中 但是 当我尝试通过访问属性时get 它返回未定义 假设 JSON 文件有一个游戏数组 其中包含具有某些属性的对象 这并不重要 只是想将它们保存在模型中并访问它们 所以我正在做这样的事情 va
  • 使用 NULL 时的查询性能

    我想知道 NULL 值如何影响 SQL Server 2005 中的查询性能 我有一个与此类似的表 简化 ID ImportantData QuickPickOrder 1 Some Text NULL 2 Other Text 3 3 a
  • NHibernate 惰性属性行为?

    我一直在尝试让 NHibernate 参与我在工作场所进行的一个项目的开发 由于我必须非常重视性能 因此我一直在对包含数千条记录的现有项目表运行概念验证压力测试 所有这些记录都包含一个大型文本列 然而 当选择这些记录的集合时 select语
  • 在 DP Java 中以编程方式设置 ImageView 大小 [重复]

    这个问题在这里已经有答案了 我想设置一个的宽度和高度ImageView in Android The ImageView不存在于XML 它是在这里创建的 public void setImageView int i Integer d Li
  • 如何更改 JOptionPane 内的按钮背景

    我想知道是否有人知道是否可以更改按钮内的背景颜色JOptionPane 我知道如何改变整个JOptionPane背景使用UIManager 但知道我想要的是在JOptionPane分离各个颜色 如果我能做到这一点 我会怎么做 谢谢您的帮助
  • 文件中的 JetBrains PhpStorm 红色不会消失

    我有一些红色的文件 它们绝对没有错误 所有内容都正确编译 网络也正确显示 控制台上有 0 个错误 我实际上是复制粘贴 Angular 教程 它肯定是 100 无错误 但文件仍然是红色的 我很生气 因为它看起来像一个错误 有人有解决这个问题的
  • 使用pyaudio进行录音

    我正在尝试使用 python 录制语音 我尝试使用 pyaudio 模块 它在我的计算机上保存了一个 wav 文件 但录制了静态声音 有什么建议么 import pyaudio import wave CHUNK 1024 FORMAT p
  • 将 Unicode 字符串转换为转义 ASCII 字符串

    我怎样才能转换这个字符串 This string contains the Unicode character Pi 转换成转义的 ASCII 字符串 This string contains the Unicode character P
  • Yii2:验证是否至少选择了一个复选框

    我有多个音乐版本供用户创建促销 在促销创建表单上 我们列出了所有版本 我正在使用表单模型来创建促销 其中我为我的几个输入定义了所有规则促销形式模型 我想检查用户在保存表单时是否至少选择了一个版本 但它不起作用 因为复选框是动态创建的 我该字
  • 是否可以使用边框半径实现弯曲的圆形形状?

    我不确定形状是什么 我假设它是一个弯曲的圆圈 下面是示例的屏幕截图 我希望图像的形状有点像这样 但尝试与边界半径根本不工作 有什么方法可以用CSS实现这个形状吗 这是你的答案 你可以通过 border radius 来实现 如果您想自定义它
  • Laravel 5 多语言站点,url 中带有语言前缀

    因此 我需要在具有如下网址的网站上使用多种语言 mysite en language mysite it language mysite es language 我决定在我的路线中使用前缀 如下所示 allLanguages en it e
  • colgroup 和 col 上的 Span 属性

    这些代码在逻辑上是等价的吗
  • Laravel Route 在 web.php 中存在路由顺序问题

    我在 Laravel 中遇到路由问题 我正在遵循一个教程 并且我们在 web php 文件中列出了此路由 Route get home HomeController index gt name home Route get blog Blo
  • ColdFusion 9.0.0 TLSv1.2

    我正在运行 ColdFusion 9 0 Hotfix 3 我正在尝试让 TLSv1 2 适用于 cf http 标记 我首先升级到 Java 7 Update 80 然后升级到 Java 8 Update 25 使用 Wireshark
  • 具有多个模板参数错误的模板部分特化

    当我在具有一个模板参数的类上使用模板部分特化时 我可以特化这样的方法 include
  • C++ OpenGL:调用 gluPerspective 会引发未定义的引用错误? [复制]

    这个问题在这里已经有答案了 我正在使用 FreeGLUT 尝试使用 OpenGL 在 C 中创建我的第一个立方体 我有一个问题 每当我调用 gluPerspective 时 编译器都会抛出此错误 build Debug MinGW Wind
  • 有没有办法使用 C 标准库来测量微秒的时间?

    有没有平台无关使用 C 标准库测量微秒时间的方法 不幸的是 测量的精度取决于操作系统
  • 在经典 ASP / Javascript 中将对象插入全局范围

    这个问题与经典 ASP 中的 Javascript 有关 它与浏览器中运行的 Javascript 无关 设计为可重用的 JS 模块的典型构造如下 function globalScope declarations here this 这允
  • iframe 中的parent.location.reload 不工作 IE

    当我单击测试时 我需要刷新父站点 刷新浏览器 我有源index php 在 q php 中 a href testing a 它可以在 FF LAtest 版本 Chrome 中工作 但不能在 IE 9 中工作 他说 script70 权限
  • 向 hibernate JoinTable 添加附加属性

    我有两个实体 消息和用户 用户与消息具有多对多关系 一个用户可以拥有多条消息 并且消息 目前 为了使其不那么复杂 与用户具有多对多关系 一条消息可以发送给多个用户 我使用 JoinTable 连接两个实体 但是 我想在连接表中添加一个 状态