gpt4 book ai didi

java - 不完整的@JoinColumns

转载 作者:太空宇宙 更新时间:2023-11-04 06:11:06 24 4
gpt4 key购买 nike

我在尝试为数据库创建一些模型时遇到 JPA 问题。

我有这三个类(我只是将部分代码放在这里):

GuideVersionLang

@Entity
public class GuideVersionLang implements LangItem {
...
@ManyToOne
@JoinColumns({
@JoinColumn(name="GUIDE_VERSION_NUMBER", referencedColumnName="VERSION_NUMBER"),
@JoinColumn(name="GUIDE_ID", referencedColumnName="GUIDE_ID")
})
@JsonIgnore
private GuideVersion guideVersion;
...
}

指南版本

@Entity
@IdClass(value=GuideVersionKey.class)
public class GuideVersion {
...
@OneToMany(mappedBy="guideVersion", orphanRemoval=true, cascade=CascadeType.PERSIST)
private LangsCollection<GuideVersionLang> guideVersionLangs;

@Id
@ManyToOne
@JoinColumn(nullable = false, name="GUIDE_ID")
@JsonIgnore
private Guides guide;

@Id
@Column(name = "VERSION_NUMBER")
private long versionNumber;
...
}

GuideVersionKey

@Embeddable
public class GuideVersionKey {
private long versionNumber;
private long guide;
...
}

所以,我有一个 GuideVersion 类,并且该类有一个组合键。它的复合键由指南的idversionNumber组成,都是长数字。

我只想在 GuideVersionGuideVersionLang 之间建立关系,正如您在代码中看到的那样。但是,我在 @JoinColumns 注释上遇到问题:

@JoinColumns({
@JoinColumn(name="GUIDE_VERSION_NUMBER", referencedColumnName="VERSION_NUMBER"),
@JoinColumn(name="GUIDE_ID", referencedColumnName="GUIDE_ID")
})

我不知道为什么,但 @JoinColumns 不起作用。我收到此错误:

The @JoinColumns on the annotated element [field guideVersion] from the entity class [class com.model.GuideVersionLang] is incomplete. When the source entity class uses a composite primary key, a @JoinColumn must be specified for each join column using the @JoinColumns. Both the name and the referencedColumnName elements must be specified in each such @JoinColumn.

正如您在代码中看到的,我在 @JoinColumns 注释中指定了两个 @Id 列。我在这里缺少什么?

非常感谢!

最佳答案

有关相关代码的一些提示:

1.由于您有 GuideVersion (GuideVersionKey) 的 embedded id,因此您实际上不需要为其指定 Id(只需使用 @EmbeddedId 注释)。

2.可以使用@MapsId映射Guid_id。

@Entity
public class GuideVersion {
...

@EmbeddedId
GuideVersionKey IdKey;

@ManyToOne
@MapsId("guide")
@JoinColumn(name = "GUIDE_ID")
private Guides guide;

...
}

关于java - 不完整的@JoinColumns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28706901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com