簡體   English   中英

@Embeddable 是 Foo.class' PK 和 Bar.class' FK 到 Foo.class

[英]@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM