[英]@Embeddable is Foo.class' PK and Bar.class' FK to Foo.class
我正在嘗試在無法重新設計的數據庫上定義 JPA 層。 該層包含一個 OneToMany 關系,其中 Many 部分有一個外鍵,該外鍵由與 one 部分作為主鍵相同的 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;
雖然如果有人有更優雅的解決方案,我會接受
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.