java - 当我们在实体中使用嵌套的 JoinColumn 时,SQL 数据库中会发生什么
问题描述
我正在浏览一些代码,它使用嵌套@JoinColumn
的关联之一,如下所示:
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumns({@JoinColumn(name = "QuestId"), @JoinColumn(name = "GuildId")})
private GuildQuests guildQuest;
我明白当我执行以下操作时:
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumns(name="GuildQuestId")
private GuildQuests guildQuest;
我正在使用GuildQuestId
表中的名称创建一个列,并且它具有与 entity 的外键约束GuildQuests
。
但是,嵌套@JoinColumn
(第一个代码片段)会做什么?
解决方案
Your first snippet is saying that you specify multiple foreign keys for the same association.
Example:
@ManyToOne
@JoinColumns({
@JoinColumn(name="ADDR_ID", referencedColumnName="ID"),
@JoinColumn(name="ADDR_ZIP", referencedColumnName="ZIP")
})
public Address getAddress() { return address; }
Edit: You're actually not creating any foreign keys with (both example) in the database. If you use for example Hibernate, Hibernate does not create any foreign keys on database level itself.
推荐阅读
- xml - 您可以在 Logi 报告中应用条件格式吗?
- python - matplotlib如何绘制字符串
- python - Pandas:根据另一列中的索引列表添加一列来自其他列的值列表
- c# - 如何以静默模式安装 Firefox 插件?
- jquery - 页面滚动器,显示部分标题并能够跳转到下一个或上一个部分
- python - 如何根据数据价格回报最小化一个分布的 kstest 提供的 python 中的 -p 值?
- java - 无法加载球衣测试中的注入值
- r - 如何迭代到网站的最后一页并在 .csv 文件中逐行写入数据?
- reactjs - Dispatching logout from outside of a React Component
- ios - Xcode builds are taking much longer than usual and causing MacBook fans to go crazy