2009-02-05 1 views
1

본인에게는 Shipment 및 Product 엔티티가 있습니다. 각 선적은 임의의 수량의 제품으로 구성됩니다. 나는. 발송물에는 products라는 필드가 있는데, 이는 java.util.Map입니다. 여기서 key는 발송되는 제품이고 value는 발송되는 해당 제품의 인스턴스 수입니다.최대 절전 모드 특수 효과가있는 값으로 엔티티의 맵을 매핑하는 방법은 무엇입니까?

최대 절전 모드 주석이있는 데이터베이스에 어떻게 맵핑합니까?

답변

1

귀하가해야 할 일입니다. 필드 mapShipment 클래스에 속하며 각각 Product을 배송 된 제품 수로 매핑합니다.

최대 절전 모드에서 생성 된 ID에 의존하지 않는 클래스 클래스에서 equals 및 hashCode 메서드를 제대로 정의하지 않으면 작동하지 않습니다. (또는 here 전체 내용보기).

@CollectionOfElements(targetElement=Integer.class) 
@MapKeyManyToMany(targetEntity=Product.class) 
private Map<Product, Integer> map = new HashMap<Product, Integer>(); 
0

이 나에게 이상한 디자인의 비트처럼 보이지만 내가 제대로 이해한다면 당신은이 데이터베이스 스키마를 할 것입니다 :

  • 의 ID를
  • 제품 테이블이 선적 테이블 이 ID를 참조하는 외래 키가 있습니다.

이 관계는 기본적으로 일종의 기본 관계입니다. 즉, 출하 측과 일대 다 관계에 있으며, 반대 방향으로는 일대 다 관계입니다. 예를 들어 줄 수는 있지만 실제로는 hibernate docs (지도 예제의 아래쪽으로 스크롤)에서 다룰 수 있습니다. xml이 어노테이션에 어떻게 맵핑되는지에 대해 정말로 열심히 생각해 보면 여러분을 넘어서게 할 수 있습니다. 순수한 JPA에서이 작업을 수행하려는 경우 몇 가지 문제가 발생할 수 있습니다. 연결된 예제는 수식을 사용하는 것 같습니다.