Caused by: org.hibernate.MappingException: property mapping has wrong number of columns: Parent.child type: Child
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:497)
at org.hibernate.mapping.RootClass.validate(RootClass.java:270)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1360)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1851)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
... 23 more
1. 원인
2. 이유
연관관계의 주인(mappedBy
)를 설정하지 않았기 때문이다.
양방향 매핑의 규칙: 연관관계의 주인
양방향 연관관계 매핑시 지켜야 할 규칙이 있는데 두 연관관계 중 하나를 연관관계의 주인으로 정해야 한다. 연관관게의 주인만이 데이터베이스 연관관계와 매핑되고 외래 키를 관리(등록, 수정, 삭제)할 수 있다. 반면이 주인이 아닌 쪽은 읽기만 할 수 있다. - 자바 ORM 표준 JPA 프로그래밍, 181p.
3. 해결책
mappedBy 를 선언해주어 연관관계의 주인을 지정해주면 된다.
'Java > Framework & Libs' 카테고리의 다른 글
asciidoc 으로 작성해본 스프링 애플리케이션 개발 프로세스 및 분석 방법 (0) | 2015.11.02 |
---|---|
Rocking the SPRING FRAMEWORK 4.X for WEB 발표준비 시작 (0) | 2015.10.04 |
SpringDataJPA: 스프링 프레임워크에 JPA 예외변환기 적용 (0) | 2015.08.13 |
Quartz Schedule: DayOfMonth and DayOfWeek 관계작성에 대한 테스트 작성 (0) | 2015.02.11 |
SpringBoot: Velocity Template Engine 사용시 한글깨짐, Encoding 설정 (0) | 2014.12.04 |