두 개의 ModelId
클래스가 포함 된 엔티티가 있는데 하나는 EmbeddedId
이고 다른 하나는 다른 엔티티를 참조합니다. 업데이트시 임베디드 AttributeOverride가 작동하지 않습니다.
org.eclipse.persistence.exceptions.ValidationException
Exception Description: The attribute [id] of class [mypackage.ModelId] is mapped
to a primary key column in the database. Updates are not allowed.
내가는 EclipseLink 2.5 글래스 피쉬 4.1 사용 : 내가 얻을 필드
schemeId
을 업데이트
때 @Entity
public class Report implements Serializable {
@EmbeddedId
private final ModelId id;
@AttributeOverride(name = "id", column = @Column(name = "scheme_id")
@Embedded
private ModelId schemeId;
public void changeScheme(ModelId schemeId) {
this.schemeId = schemeId;
}
}
@Embeddable
public class ModelId implements Serializable {
private Integer id;
}
나는 하지만 및 이Report
를 선택하여 삽입 할 수 있습니다.
내가 누락되었거나 EclipseLink 버그입니까?
문제는 schemeId
가 외래 키 만 id
는 기본 키를 만드는 것입니다. 내가 schemeId
에 연결을 변경하는 경우는 잘 작동 : 나는 많은 주석 조합도 GF4.0와 같은 결과는 EclipseLink 2.6에서 테스트했습니다
@ManyToOne
@JoinColumn(name = "scheme_id", referencedColumnName = "id")
private Scheme scheme;
public void changeScheme(Scheme scheme) {
this.scheme = scheme;
}
.
업데이트 도중 EclipseLink가 @AttributeOverride
을 무시하고 내부 번호 schemeId.id
을 id.id
으로 섞는 것처럼 보입니다.
감사합니다. 제 편집을 좀보세요. 제발. –