@OneToMany without inverse relationship and without a join table?

前端 未结 3 1822
天命终不由人
天命终不由人 2020-12-08 04:00

This is a similar problem to \"Hibernate @OneToMany without a separate join table\", in that I need a @OneToMany relationship without a join table. However, I would also li

3条回答
  •  时光说笑
    2020-12-08 04:45

    In JPA 2.0+ you can use @JoinColumn as a way to avoid to generate joined table.

    Try it.

    @OneToMany
    @JoinColumn(name="COLUMN_NAME")
    

    UPDATE

    The info provided above has been extracted from EJB 3.0 o'reilly book (Look for The @JoinColumn annotation references the CUSTOMER_ID column in the PHONE table). However, plain JPA 1.0 specification does not support this feature. What it says is

    Unidirectional one-to-many relationships may be implemented using one-to-many foreign key mappings, however, such support is not required in this release. Applications that want to use a foreign key mapping strategy for one-to-many relationships should make these relationships bidirectional to ensure portability

    So in 1.0 it is a vendor-specific implementation (And it makes sense, The author works at JBoss - The red hat divison behind the hibernate)

    But it is supported by JPA 2.0 implementation

    If the join is for a unidirectional OneToMany mapping using a foreign key mapping strategy, the foreign key is in the table of the target entity.

提交回复
热议问题