Java 当我们在实体中使用嵌套的JoinColumn时,SQL数据库中会发生什么
我正在浏览一些代码,其中一个关联使用嵌套的Java 当我们在实体中使用嵌套的JoinColumn时,SQL数据库中会发生什么,java,sql,spring,many-to-one,Java,Sql,Spring,Many To One,我正在浏览一些代码,其中一个关联使用嵌套的@JoinColumn,如下所示: @ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY) @JoinColumns({@JoinColumn(name=“QuestId”),@JoinColumn(name=“GuildId”)}) 私人guildQuest guildQuest; 我明白,当我做以下事情时: @ManyToOne(cascade=CascadeType.ALL,fetch=F
@JoinColumn
,如下所示:
@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumns({@JoinColumn(name=“QuestId”),@JoinColumn(name=“GuildId”)})
私人guildQuest guildQuest;
我明白,当我做以下事情时:
@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumns(name=“GuildQuestId”)
私人guildQuest guildQuest;
我正在表中创建一个名为GuildQuestId
的列,该列具有实体GuildQuests
的外键约束
但是,嵌套的
@JoinColumn
(第一个代码段)将做什么?您的第一个代码段表示为同一关联指定多个外键
例如:
@ManyToOne
@JoinColumns({
@JoinColumn(name="ADDR_ID", referencedColumnName="ID"),
@JoinColumn(name="ADDR_ZIP", referencedColumnName="ZIP")
})
public Address getAddress() { return address; }
编辑:
实际上,您没有使用数据库中的(两个示例)创建任何外键。例如,如果使用Hibernate,Hibernate不会在数据库级别本身创建任何外键