私は私の注文とリクエストをマップする最良の方法を知りたいと思っています。 Order
クラスは次のとおりです。HibernateマッピングOneToMany +継承
@Entity
@Table(name = "Orders")
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
}
私はOrder
属性
@Entity
@Table(name = "Requests")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="request_type",discriminatorType=DiscriminatorType.STRING)
public class Request {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne(targetEntity = Order.class, fetch = FetchType.EAGER)
@JoinColumn(name = "oldOrder_id", referencedColumnName = "id")
private Order oldOrder;
}
を取るクラスを持って、私は別のを取るRequest
のこのサブクラスOrder
属性
@Entity
@DiscriminatorValue("Edit")
public class EditRequest extends Request {
@ManyToOne(targetEntity = Order.class, fetch = FetchType.EAGER)
@JoinColumn(name = "newOrder_id", referencedColumnName = "id")
private Order newOrder;
}
を持っており、私が持っています別のサブクラス(CancelRequest
)はRequest
wh ich doesntはOrder
属性をとります。
Order
クラスで私が入れた場合、それは意味がありません。
@OneToMany(mappedBy="oldOrder")
private Collection<Request> requests;
@OneToMany(mappedBy="newOrder")
private Collection<EditRequest> editRequests;
を順序がタイプCollection<Request>
の1つの属性のみを持っている必要がありますので。
だから、私はOrder
クラスに何を入れるべきですか?
注文には、タイプコレクションの属性が1つのみである必要がある理由を説明できますか? –
davidxxx