Spring MVC 애플리케이션에서 내 데이터베이스에 연결을 시도하고 있습니다. 두 개의 테이블이 있습니다. 사용자 및 주문 사용자는 기본 키 열 "userID"를 가지며 주문에는 "userID"및 "orderID"열의 복합 키가 있습니다. 여기서 userID는 Users 테이블의 "userID"열을 참조하는 외래 키입니다. 여기 UserID 대신에 "user"컬럼에 매핑하려고하는 복합 키 내의 "UserID"에 대한 외래 키 참조가있는 Spring-data-JPA
내 클래스입니다 :주문 :
@Entity
@Table(name = "Orders")
@IdClass(OrderPK.class)
public class Order implements Serializable{
private static final Long serialVersionUID = 1L;
@EmbeddedId
private OrderPK orderPK;
//other properties
//no args and full args constructor
//getters and setters
//toString
}
OrderPK :
@Embeddable
public class OrderPK implements Serializable {
@Column(name = "orderID")
private Long orderID;
@ManyToOne
@JoinColumn(name = "userID")
private User user;
public OrderPK() {
}
public OrderPK(Long orderID, User user) {
this.orderID = orderID;
this.user = user;
}
public Long getOrderID() {
return orderID;
}
public void setOrderID(Long orderID) {
this.orderID = orderID;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof OrderPK)) return false;
OrderPK that = (OrderPK) o;
return Objects.equals(getOrderID(), that.getOrderID()) &&
Objects.equals(getUser(), that.getUser());
}
@Override
public int hashCode() {
return Objects.hash(getOrderID(), getUser());
}
}
사용자 :
@Entity
@Table(name = "USERS")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name="USER_SEQUENCE", sequenceName="USER_SEQUENCE")
@GeneratedValue(strategy=GenerationType.SEQUENCE,
generator="USER_SEQUENCE")
@Column(name = "userid")
private Long userId;
//other properties
//no args and full args constructor
//getters and setters
//toString
}
내가 얻을 데이터베이스에 연결을 시도합니다 다음 예외 : 초기화의 호출 :
org.springframework.beans.factory.BeanCreationException '의 EntityManagerFactory'클래스 패스 리소스에 정의 [조직/스프링 프레임 워크/부팅/자동 구성/ORM/JPA/HibernateJpaAutoConfiguration.class] 이름을 가진 bean을 생성 오류 메서드가 실패했습니다. @IdClass 주석 기업에 대한 속성 (주문 ID, 사용자를) 찾을 수 없습니다 : com.ex.evemarketback.domain.Order
...
에 의해 발생 : 조직 상자의 예외는 org.hibernate.AnnotationException입니다. hibernate.AnnotationException : com.ex.evemarketback.domain.Order
어떤 제안이 : @IdClass 주석 개체의 속성 (주문 ID, 사용자를) 찾을 수 없습니다? 당신이 @EmbeddedId
를 사용하는 것처럼