JPA:可嵌入类中的外键

2023-12-21

我有以下情况需要解决,但无法使其工作(尝试过 Hibernate 和 EclipseLink):

Table_1:
    Column_A is Primary Key
    ... some other columns do follow

.

Table_2:
Column_x is Primary Key and is Foreign Key to Table_1.Column_A
Column_y is Primary Key and is Foreign Key to Table_1.Column_A
Column_z is Primary Key

因此,表 2 有一个复合主键。

我尝试通过以下方式实现它:

class Table_1 {
  @Id int Column_A;
}

.

class Table_2 {
  @EmbeddedId PK key;

  @Embeddable class PK {
    @OneToOne(targetEntity=Table_1.class)
    @JoinColumn(name="Column_x",referencedColumnName="Column_A")
    int Column_x;

    @OneToOne(targetEntity=Table_1.class)
    @JoinColumn(name="Column_y",referencedColumnName="Column_A")
    int Column_y;

    int Column_z;

    public boolean equals(Object O) { ... }
    public int hashCode() { ... } 
  }
}

然而,当我运行时,我从 EclipseLink 得到提示,在 @Embeddable 中我只能使用“基本”注释。因此,我的问题是如何解决上面绘制的场景?

我无权访问类 Table_1 的源代码,但必须按原样使用它。此外,很可能有更多的类/表建立到 Table_1 的外键。


使用@IdClass。

See, http://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing#JPA_2.0 http://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing#JPA_2.0

@IdClass(PK.class)
class Table_2 {
    @Id
    @OneToOne(targetEntity=Table_1.class)
    @JoinColumn(name="Column_x",referencedColumnName="Column_A")
    Table_1 Column_x;

    @Id
    @OneToOne(targetEntity=Table_1.class)
    @JoinColumn(name="Column_y",referencedColumnName="Column_A")
    Table_1 Column_y;

    @Id
    int Column_z;

    public boolean equals(Object O) { ... }
    public int hashCode() { ... } 
  }
}

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

JPA:可嵌入类中的外键 的相关文章

随机推荐

  • 销毁通过 Serverless 创建的资源而不销毁 Lambda 端点

    我在 serverless yml 文件中定义了以下资源 为我所有不同的发展阶段创建资源非常有用 resources Resources uploadBucket Type AWS S3 Bucket Properties BucketNa
  • Google Chrome PDF 查看器复选框不起作用

    我们在生成 PDF 的 Chrome PDF 查看器中遇到问题 其中复选框未更改状态 即被选中 并且当您按 TAB 键退出某些字段时 某些字段会丢失值 但当它们获得焦点时 值会再次显示 还有其他人经历过吗 如果是这样 对如何解决这个问题有什
  • mkdir() 在内部闪存中起作用,但在 SD 卡中不起作用?

    我目前正在构建一个文件管理应用程序 允许用户浏览其设备的文件系统 用户从根目录开始 的设备 但可以浏览到他们想要的任何位置 例如内部闪存或 SD 卡 该应用程序的关键要求之一是允许用户在任何地方创建新文件夹 像这样的功能对于应用程序来说非常
  • CSS - 悬停时平滑按钮渐变颜色过渡

    我有以下按钮 上面按钮的 CSS 是这样的 cta btn display inline block margin 20px 0 0 20px color fff background color FF8F1B background ima
  • Twitter 引导下拉菜单超出屏幕范围

    我想实现 twitter bootstrap 下拉菜单 这是我的代码 span class dropdown a href menu1 class dropdown toggle img class left src static img
  • 如何在 Dialogflow 中的 webhook 中执行槽验证?

    如何使用后端代码 webhook 在意图中执行插槽验证 我已经了解了如何使用 webhooks 执行槽填充 但我想知道如何验证槽数据并在验证失败时重新提示用户 Example 用户 我想了解你们在伦敦的服务 Bot 我们不在伦敦提供服务 请
  • python、matplotlib、svg 和文本标签中的超链接

    In 绘图库 http matplotlib sourceforge net 有可能使用超链接创建 SVG 图形 http matplotlib sourceforge net examples pylab examples hyperli
  • Android 上 GZIPInputStream 的截断输出

    我一定做错了什么 在 Android 上运行以下代码会生成截断的文件 items 日志中没有任何异常或问题 使用 OpenJDK 7 运行相同的代码 它可以正确解压缩文件 try final InputStream fis new GZIP
  • C - 测量计算时间

    有没有简单的方法来测量C中的计算时间 我在执行时尝试了时间实用程序 但我需要测量程序的特定部分 Thanks 您可以使用clock函数于
  • 如何使用NAudio的BiQuadFilter?

    我使用 NAudio 录制麦克风的声音并将其保存在文件中 我用这个 public WaveFileWriter m WaveFile null m WaveFile new WaveFileWriter strFile m WaveSour
  • Windows cmd 模拟控制台输入命令

    我需要编写一个批处理脚本 当用户名和密码保存在某处 例如 在文件中 时 该脚本会自动连接到 VPN VPN 客户端是 openconnect 它提供了 CLI 但问题是需要以交互方式向命令提供用户输入才能完成 当我运行时请参阅下面的输出 o
  • 为 Spring MVC/AOP 应用程序实现动态菜单

    我希望为我的 Spring MVC 应用程序实现动态可更改的菜单 每当添加注释方法或控制器时更新 我想要的是引入新的注释 RequestMenuMapping 这将去 Controllerbeans 及其方法 就像 RequestMappi
  • 如何将 TLS 1.0 与 Python 3.8 结合使用?

    我有一个使用 Jira 连接的代码jira module 不幸的是 Jira 服务器仅支持SSLv3 and TLS1 我知道它们是旧协议 今年年底前主办方将接受新的 但在那之前我需要我的 python 代码来使用 Jira 连接TLS1
  • 将文件上传到 FTP 一旦到达目的地就会损坏

    我正在创建一个简单的拖动文件并自动上传到 ftp Windows 应用程序 我正在使用MSDN代码 http msdn microsoft com en us library ms229715 aspx将文件上传到 FTP 代码非常简单 G
  • Rails 5、Gmaps4Rails - 设置

    多年来我一直在尝试找出如何将 gmaps4rails 合并到 Rails 应用程序中 我制作了一个全新的应用程序并尝试了新的 我不知道出了什么问题 我正在寻找完整且最新的设置说明 许多 SO 帖子都提到了旧版本的依赖项 最终表明该问题已在更
  • 在 python 脚本中更改为 sudo 用户

    我有个问题 我正在编写一个软件 需要它来执行需要用户处于 sudo 模式的操作 运行 sudo python filename py 不是一个选项 这引出了我的问题 有没有办法通过 python 脚本更改为 sudo 安全性不是问题 因为用
  • C# String.Format 参数

    我有一个像这样的数组 object args 并且需要将这些参数插入字符串中 例如 str String Format Her name is 0 and she s 1 years old args 代替 str String Forma
  • Vite 服务器正在运行,但无法在本地主机上运行

    Vite Reactjs 服务器正在运行 但我得到了 找不到该本地主机页面 未找到该网址的网页 https localhost 4200 在浏览器上 从 create React app react scripts 迁移到 Vite 时的一
  • 如何知道数据何时加载到自定义 RecyclerView 中?

    我正在我的应用程序中创建并使用自定义 RecyclerView 我需要打电话getChildAt 0 getWidth 在任何工作之前保存类字段中的第一个项目宽度 为此 我需要在适配器中加载数据时捕获 否则 getChildAt 0 将返回
  • JPA:可嵌入类中的外键

    我有以下情况需要解决 但无法使其工作 尝试过 Hibernate 和 EclipseLink Table 1 Column A is Primary Key some other columns do follow Table 2 Colu