实体Bean中的单向关系(JPA)

Nav*_*Nav 6 java orm jpa

如何在EJB 3.0 Entity-Beans(JPA)中创建单向关系?

例如,客户了解订单,但订单没有客户的任何方法.使用(@OneToMany或@OneToOne或@ManyToMany)

问候

Jor*_*lan 15

以下是@OneToMany使用JPA 2.0 建立单向关系的方法:

@Entity
public class Customer {
  @Id
  @Column(name="cust_id")
  private long id;
  ...
  @OneToMany
  @JoinColumn(name="owner_id", referencedColumnName="cust_id")
  private List<Order> order;
  ...
}

@Entity
public class Order {
    @Id
    @Column(name="order_id")
    private long id;
    ...
}
Run Code Online (Sandbox Code Playgroud)

关系型数据库:

顾客:

+---------+---------+------+-----+---------+-------+
| Field   | Type    | Null | Key | Default | Extra |
+---------+---------+------+-----+---------+-------+
| cust_id | int(11) | NO   | PRI | NULL    |       |
+---------+---------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)

订购:

+----------+---------+------+-----+---------+-------+
| Field    | Type    | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| order_id | int(11) | NO   | PRI | NULL    |       |
| owner_id | int(11) | NO   | MUL | NULL    |       |
+----------+---------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)

  • 请注意,JPA 1.0不支持**单向的"OneToMany"关系**而没有**"JoinTable".换句话说,您无法使用单向"OneToMany"映射上表模型,因此无法准确地说明您的答案. (3认同)