我试图在一个我无法重新设计的数据库上定义JPA层。 该层包含一个OneToMany关系,其中多个部分有一个外键,外键由一个部分作为主键的相同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
@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;
虽然如果有人有更优雅的解决方案,我会接受