inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 ORM 표준 JPA 프로그래밍 - 기본편

실전 예제 3 - 다양한 연관관계 매핑

insertable = false, updateable = false

2041

김태민

작성한 질문수 23

0

Application run을 해보니 Order 클래스 내부 다대일 매핑한 Member의 JoinCloumn 어노테이션 안에 옵션 값 insertable = false, updateable = false 값을 넣으라는 에러 메세지가 뜹니다 ㅠㅠ 이유가 뭘까요 

현재 저의 코드상태입니다 https://github.com/TeMlN/JPA-Shop

 

+ 강의를 다 듣고나니 @ManyToOne은 mappedBy가 불가능 한데, insertable = false, updateable = false 라는 꼼수가 있다고 언급하셨는데 지금 제 상황과 얼추 맞는거 같은데 조언 부탁드려요 ㅠㅠ

===========================================

Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: hello] Unable to build Hibernate SessionFactory

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1016)

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:942)

at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)

at jpabook.jpashop.JpaMain.main(JpaMain.java:15)

Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: jpabook.jpashop.domain.Order column: MEMBER_ID (should be mapped with insert="false" update="false")

at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:862)

at org.hibernate.mapping.PersistentClass.checkPropertyColumnDuplication(PersistentClass.java:880)

at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:902)

at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:634)

at org.hibernate.mapping.RootClass.validate(RootClass.java:267)

at org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:347)

at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:466)

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939)

... 4 more
===========================================

java JPA

답변 1

0

David

안녕하세요. 김태민님, 공식 서포터즈 David입니다.
.

Order 내에 member_id 라는 이름을 가진 칼럼이 이미 있기 때문입니다.

이미 member_id 라는 이름을 가진 칼럼이 있는데, @ManyToOne @JoinColumn(name = "member_id")를 설정해줌으로써 중복되기 때문입니다.

이미 작성된 member_id를 날려버리거나, JoinColumn 옵션에 insertable, updatable의 값을 false로 주면 됩니다.

.
감사합니다.

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

33

2

inheritance startegy 선택시 고려사항

0

25

1

Entity 동등성 비교

0

25

1

실무 조언 관련 질문입니다.

0

49

1

H2데이터베이스 파일 생성

0

60

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

57

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

58

1

JPQL 메소드와 락

0

57

1

Delivery @OneToOne

0

64

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

98

2

UnsupportedOperationException 발생

0

89

3

H2 Database 연결이 안됩니다.

0

98

2

연관관계 매핑 질문드립니다.

0

88

2

h2데이터베이스 실행오류

0

110

2

persistence.xml

0

112

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

83

1

영속성 컨텍스트

0

70

1

JPA 프록시

0

100

1

Native Query와 MyBatis

0

74

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

93

1

임베디드 타입 예시 코드 관련 질문

0

121

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

97

3

인텔리제이 패키지 커서 단축키 질문

0

109

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

149

1