Java/Framework & Libs

[Hibernate] Caused by: org.hibernate.MappingException: property mapping has wrong number of columns: 발생

허니몬 2015. 9. 25. 15:51

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 를 선언해주어 연관관계의 주인을 지정해주면 된다.