gpt4 book ai didi

java - @Embeddable 是 Foo.class 的 PK 和 Bar.class 的 FK 到 Foo.class

转载 作者:行者123 更新时间:2023-12-01 18:27:09 25 4
gpt4 key购买 nike

我正在尝试在无法重新设计的数据库上定义 JPA 层。该层包含一对多关系,其中“多”部分具有一个外键,该外键由与“一个”部分作为主键相同的 2 个字段组成。

@Embeddable
public class FooKey implements Serializable {

@Column(name="foo_id")
private String id;
private String secondaryId;
}

public class Foo {
@EmbeddedId
private FooKey id;
(...)
}

public class Bar {
@Id
private Long id;
(...)

//@Embedded FooKey fooKey;
@ManyToOne
private Foo foo;
}

我该如何解决这个问题?我收到错误 @Column(s) not allowed on a @ManyToOne property

最佳答案

我设法通过以下方式做到这一点:

  @ManyToOne
@JoinColumns({
@JoinColumn (name = "foo_id", referencedColumnName = "foo_id"),
@JoinColumn (name = "secondary_id", referencedColumnName = "secondary_id")
})
private Foo foo;

尽管如果有人有更优雅的解决方案,我会接受

关于java - @Embeddable 是 Foo.class 的 PK 和 Bar.class 的 FK 到 Foo.class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60214407/

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