2013-05-07 3 views
0

JPA, 최대 절전 모드,JPA, 최대 절전 모드, OneToMany 맵핑

부모 감안할 때 OneToMany 매핑 문제 :

@Entity 
public class Discount { 

@Id 
private String id; 

@Column(nullable = false) 
private String userName; 

@Column(nullable = false) 
private String iDocId; 

@Column(nullable = false) 
private Date creationTime; 

@Column(nullable = false) 
private String salesOrganization; 

......... 

@OneToMany(cascade = CascadeType.ALL, mappedBy = "discount") 
private Set<DiscountConditionScale> conditionScales = new HashSet<DiscountConditionScale>(); 
......... 

}

와 아이 :

@Entity 
public class DiscountConditionScale { 

@Id 
@ManyToOne 
private Discount discount; 

private BigDecimal quantity; 

private BigDecimal rate; 
....... 

을}

ike는 DiscountConditionScale의 키를 (할인, 비율, 수량)으로합니다. 어떻게해야합니까?

많은 감사합니다.

답변

0

3 가지 속성에 @ 아이디 어노테이션을 추가했습니다.

@UniqueConstraint (COLUMNNAMES = { "할인 :

당신의 엔티티가 관계 테이블보다 더 많은 경우

은 내가 EmbeddedId 대신

당신은 아마 그냥 구속을 필요로
+0

대단히 감사합니다. 그것은 트릭이었다! – Marcin

0

를 사용하도록 권합니다 (추가적인 특성을 포함하고 있습니다) ","속도 ","수량 "})

하지만 너무 복합 키를 원하는 경우에, 개의 다른 클래스의 키를 매핑하고 DiscountConditionSale의 키로 사용 :

http://j2eereference.com/2011/01/implementing-composit-primary-key-with-jpa-and-hibernate/

+0

정확히 @UniqueConstraint를 추가했지만 무시되었습니다. – Marcin

+0

물론 ... 최대 절전 모드는 생성 될 제약 조건에 대한 테이블을 생성하거나 수동으로 생성해야합니다. – Ziul

관련 문제