2014-12-08 4 views
0

이 두 가지 질문은 많은 질문에 대답했지만 실제 시나리오를 생각하는 데 여전히 어려움이 있습니다!최대 절전 모드 일대 다 및 다 대일 모드

참고 문헌에서 예를 들자. 하나의 주문과 여러 항목이 있다고 가정합니다. 이제 하나의 Item이 하나의 Return을 가질 수 있다고 가정하지만 하나의 Return은 여러 개의 Item을 가질 수 있습니다.

내가 이해 한 것은 Order to Items will be One to Many Relation입니다. 아이템 주문을해야하기 때문에 아이템 테이블에 'order_fk'컬럼을 만들어서 가져옵니다.

//Order entity 
@OneToMany 
@JoinColumn(name = "order_fk") 
private List<Items> items; 

//item entity 
@Column(name = "order_fk") 
private Long orderId; 

Return to Items is One to Many mapping. One Return can have multiple Items. But one Item can have only one return id

//Return entity 
@OneToMany 
@JoinColumn(name = "return_fk") 
private List<Items> items; 

//item entity 
@Column(name = "return_fk") 
private Long returnId; 

내가 올바른 방향으로 생각하고있다? 이 관계와 단방향/양방향 관계를 이해하게하십시오.

전반적으로 주문 항목을 가져야합니다. 주어진 아이템의 Orderid 가져 오기. 반환되는 항목 가져 오기 및 지정된 항목의 returnId 가져 오기

참조 :

  1. Difference Between One-to-Many, Many-to-One and Many-to-Many? Hibernate/JPA ManyToOne vs OneToMany
+0

네, 맞습니다. 우리는 @ OneToMany, @ ManyToOne을 사용할 때, FetchType, inverse, cascade에주의 할 필요가있다. – MageXellos

답변

1

을 : -

그리고 한 가지 더 당신은 ID가 있지만 실체에 geting되지 않습니다 첫 번째 매핑에서 주문을 저장/업데이트/삭제할 때마다 해당 항목도 저장/업데이트/삭제되므로 다른 매핑에서도 필요에 맞게 조정합니다.

단방향 관계는 관계의 한쪽 면만 상대방을 인식한다는 것을 의미합니다. 귀하의 예제에서를 제거한 경우 과 Return 사이에 단방향 관계가 있습니다. items이 있으면 양방향 관계가 있습니다.

0

나는 다른 방법으로 OneToMany 사용한다고 생각 :

// Order entity 
@OneToMany(mappedBy = "columnInItemsPointingAtOrders") 
private List<Items> items; 

이 문서를 확인하십시오 : http://docs.oracle.com/javaee/6/api/javax/persistence/OneToMany.html. 이것은 개체의 정확한 매핑 (데이터베이스 테이블과 열을 확인하다)

//Order entity 
@OneToMany(mappedBy = "order", cascade = CascadeType.ALL) 
private List<Items> items; 

//item entity 
@ManyToOne 
@Column(name = "order_fk") 
private Order order; 

//Return entity 
@OneToMany(mappedBy = "return") 
private List<Items> items; 

//item entity 
@ManyToOne 
@Column(name = "return_fk") 
private Return return; 

cascade = CascadeType.ALL해야

//item entity 
@Column(name = "order_fk") 
private Order order; 
0

이 주제에 대해서도 처음입니다. 관계를 이해하는 데 도움이 된 것은 EER 다이어그램을 그린 다음 테스트 DB와 동기화하고 실험하는 것입니다. 이 질문에 대한 답변을하지 않지만 방향을 줄 수 있습니다.

관련 문제