单向 OneToOne 与目标实体中的 joincolumn

san*_*.sm 5 java jpa hibernate-mapping

我们如何使用@JoinColumn 实现两个实体之间的单向@OneToOne 映射以应用于目标实体。

例如,我有两个实体:

   @Entity
   public class Person {

      // Attaches column in the source entity i.e. Person
      @OneToOne
      @JoinColumn(name = "Person_ID")
      private Address address;

      //Works for @oneToMany, attaches column in target entity i.e. Address
      @OneToMany
      @JoinColumn(name = "Person_ID")
      private Set<Address> addresses;  
   }

   @Entity
   public class Address {
     //list of columns
   }
Run Code Online (Sandbox Code Playgroud)

根据文档:http : //docs.oracle.com/javaee/6/api/javax/persistence/JoinColumn.html

如果联接用于使用外键映射策略的 OneToOne 或 ManyToOne 映射,则外键列位于源实体的表中或 embeddable

如果联接用于使用外键映射策略的单向 OneToMany 映射,则外键在目标实体的表中