JPA:如何覆盖@Embedded属性的列名

2024-01-01

Person class

@Embeddable
public class Person {
    @Column
    public int code;

    //...
}

嵌入在里面Event两个不同属性的两倍:manager and operator

@Entity
public class Event {
    @Embedded
    @Column(name = "manager_code")
    public Person manager;

    @Embedded
    @Column(name = "operator_code")
    public Person operator;

    //...
}

当使用持久性生成数据库模式时,这应该给出两个相应的列。相反,会抛出异常:

org.hibernate.MappingException:实体映射中的重复列:事件列:代码

如何覆盖默认列名code对于每个属性?


Use @AttributeOverride https://docs.jboss.org/hibernate/jpa/2.1/api/javax/persistence/AttributeOverride.html,这是一个例子

@Embeddable public class Address {
    protected String street;
    protected String city;
    protected String state;
    @Embedded protected Zipcode zipcode;
}

@Embeddable public class Zipcode {
    protected String zip;
    protected String plusFour;
}

@Entity public class Customer {
    @Id protected Integer id;
    protected String name;
    @AttributeOverrides({
        @AttributeOverride(name="state",
                           column=@Column(name="ADDR_STATE")),
        @AttributeOverride(name="zipcode.zip",
                           column=@Column(name="ADDR_ZIP"))
    })
    @Embedded protected Address address;
    ...
}

在你的情况下它看起来像这样

@Entity
public class Event {
    @Embedded
    @AttributeOverride(name="code", column=@Column(name="manager_code"))
    public Person manager;

    @Embedded
    @AttributeOverride(name="code", column=@Column(name="operator_code"))
    public Person operator;

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

JPA:如何覆盖@Embedded属性的列名 的相关文章

随机推荐

  • 无法使用 C++ 连接到 PostgreSQL

    我正在尝试在我的 Mac 上运行 PostgreSQL PostgresQL 本身工作正常 我可以创建数据库和表之类的东西 但是当我尝试使用 C 连接到 PostgreSQL 时 如下所示 include
  • Git 弄乱了我的文件,在某些地方显示中文字符

    免责声明 我所说的 Git 是指 我 搞砸了 Earlier https stackoverflow com questions 17248795 git thinks ini saved in unicode files are bina
  • 如何使用 R 以编程方式提取/解压 .7z (7-zip) 文件

    我正在尝试自动提取许多使用 7 zip 压缩的文件 我需要自动化这个过程 因为a 我想解锁很多年的数据 b 我想与其他人共享我的代码并防止他们手动重复该过程 我的计算机上安装了 WinRAR 和 7 zip 我可以使用任一程序轻松地单独打开
  • 构建和验证 Gigya 签名

    我编写了一个方法 根据 Gigya 的指定时间戳和 UID 来验证 gigya 签名构建签名的说明 http developers gigya com 030 Gigya Socialize API 2 0 010 Developer Gu
  • 可能是C# 4.0编译器错误,其他人可以验证吗?

    由于我不知道究竟是哪一部分触发了错误 所以我不完全确定如何更好地标记它 这个问题是SO问题的副产品C 代码似乎以无效的方式进行优化 导致对象值变为 null https stackoverflow com questions 3379894
  • 是否有解决方法可以在 Ruby 中打开包含下划线的 URL?

    我正在使用 open uri 来打开 URL resp open http sub domain domain com 如果它包含下划线 我会收到错误 URI InvalidURIError the scheme http does not
  • 如何在 C++/CLI 接口中声明默认索引属性

    如何在 C CLI 接口中声明默认索引属性 请原谅使用命名空间的重复 完全限定符号 因为我刚刚学习 C CLI 并且希望确保 C 和 C 之间不会发生语言原语的意外混淆 Code is public interface class ITes
  • 代码段的动态重定位

    只是出于好奇 我想知道是否可以在期间重新定位一段代码 程序的执行 例如 我有一个函数 这个函数应该 每次执行后都会在内存中进行替换 我们想到了一个想法 就是使用自修改代码来做到这一点 根据网上的一些资源 自行修改 代码可以在Linux上执行
  • DICOM StudyInstanceUID 对于患者来说应该是唯一的吗?

    在处理 DICOM 研究 系列和媒体概念时 我想知道这些值对于所有数据是否都是唯一的 或者仅对于它们所属的患者而言是唯一的 另有表述 我可以让 2 名患者的研究 系列 SOP 实例 uid 值相同吗 或者 DICOM 标准根本不关心这一点
  • python opencv如何分割血管

    我正在尝试使用 Python 和 OpenCV 分割视网膜图像中的血管 这是原始图像 理想情况下 我希望所有血管都像这样非常明显 不同的图像 这是我到目前为止所尝试过的 我拍摄了图像的绿色通道 img cv2 imread images H
  • 由初始值设定项列表初始化的数组存储在哪里?

    鉴于这段代码 void someFunction void int array 1 2 3 4 5 6 7 8 9 10 数组的值存储在哪里 Stack Heap 与那些字符串文字一起 是不是叫高频堆 别的地方 我问这个问题是因为我不确定这
  • 如何修改一个活动的另一活动的变量?

    比方说 头等舱 有一个变量 字符串当前值 红色 带有一个通往 Second class 一项活动 的按钮 First class Activity 在文本视图中显示变量 currentValue 的值 目前为红色 如果我们按下按钮 它将带我
  • 在 Excel 中调整单元格宽度

    我正在使用 xlsxwriter 写入 Excel 工作表 我面临的问题是 当文本大于单元格大小时 它就会被隐藏 import xlsxwriter workbook xlsxwriter Workbook file xlsx worksh
  • Crashlytics - Firebase 日志中的 Stacktrace 不可读

    我刚刚开始使用 React Native Firebase 和 Crashlytics 版本 6 当我打电话时firebase crashlytics recordError error 在JS中catch我在 Firebase Crash
  • Python 3.10 模式匹配 (PEP 634) - 字符串中的通配符

    我有一个很大的 JSON 对象列表 我想根据其中一个键的开头来解析这些对象 并使用通配符来处理其余的 很多键都是相似的 比如 matchme foo and matchme bar 有一个内置通配符 但它仅用于整个值 有点像else 我可能
  • 在struts2中使用tile

    我正在关注 Struts2 中的 Tile 教程 但遇到以下错误 SEVERE Error configuring application listener of class org apache struts2 tiles StrutsT
  • 自定义声音推送通知不起作用(Flutter)

    to XXXX notification title ASAP Alert body Please open your app data screen Nexpage1 sound alarm click action FLUTTER NO
  • 从文本文件中提取两个分隔符之间的文本

    我目前正在写关于首席执行官自恋的硕士论文 为了衡量它 我必须进行财报电话文本分析 我按照 python 中提供的答案编写了一段代码这个链接 https stackoverflow com questions 36559356 extract
  • Ruby on Rails:为什么我在 Rails 后收到有关 javascript 和 css 的消息?

    轨道 gt Started GET assets application css body 1 for 127 0 0 1 at 2011 10 11 03 37 03 0900 Served asset application css 3
  • JPA:如何覆盖@Embedded属性的列名

    Person class Embeddable public class Person Column public int code 嵌入在里面Event两个不同属性的两倍 manager and operator Entity publi