인프런 커뮤니티 질문&답변

조석훈님의 프로필 이미지

작성한 질문수

스프링과 JPA 기반 웹 애플리케이션 개발

PostgreSQL 설치 및 설정

postgresql 설정 관련 질문

20.08.05 22:08 작성

·

426

0

안녕하세요.

저는 postgresql 관련 설정에서 clob 타입을 지원해주지 않아서 설정을 추가줬는데,

선생님은 어떻게 추가 설정을 하지 않았는데 정상 작동했는지(?) 궁금해서 여쭤봐도 될까요??

(단순히 궁금해서요..!)

감사합니다.

답변 4

0

조석훈님의 프로필 이미지
조석훈
질문자

2020. 08. 12. 16:55

https://github.com/n1tjrgns/postgresqlQ-A 

해당시점 깃 주소입니다! 늦어서 죄송합니다.

0

백기선님의 프로필 이미지
백기선
지식공유자

2020. 08. 07. 09:38

흠.. 이상하네요. 그 설정들은 반드시 필요한 설정이 아니라 CLOB이랑 특정 기능 확인 관련된 경고 메시지를 없애는데 사용하는 설정인데요.  혹시 다른 이슈 때문에 테이블 생성이 실패했었던건 아니었을지도 의심해 보셔야겠네요. 그 설정들에 대해서는 아래 두 링크 살펴보시기 바랍니다.

https://stackoverflow.com/questions/4588755/disabling-contextual-lob-creation-as-createclob-method-threw-error

https://github.com/spring-projects/spring-boot/issues/12007

저 두 설정이 없을시 에러가 나는 (Account 테이블 생성 실패 후 애플리케이션 구동 실패) 코드를 깃헙에 올려 공유해 주시면 살펴보겠습니다. 

0

조석훈님의 프로필 이미지
조석훈
질문자

2020. 08. 06. 22:13

아 제 질문이 너무 빈약했네요 죄송합니다!

강좌와 같이 DB 접속정보만 입력 후 어플을 실행했을 때

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.exception.SQLGrammarException: Unable to build DatabaseInformation

위와같은 에러가 발생했고, 실제 생성된 테이블을 봤는데 account 테이블이 생성되지 않아 5개의 테이블만 생성된 상태였습니다.

쿼리 로그를 보니

Caused by: org.postgresql.util.PSQLException: ERROR: type "clob" does not exist

clob을 지원하지 않는다고 에러가 있었고, 저희가 프로필 이미지에서 사용하기로한 @Lob 이 원인이었던것같습니다!

그래서

spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true

spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults= false

옵션을 추가해줬습니다!

그래서 강사님은 clob 어떻게 발생하지 않으셧는지 궁금했었어요!

궁금해서 스프링부트 활용 강좌의 postgresql 연동과정이 있는걸 보고 찾아봤는데도 별다른 설정 없이 잘 돌아가서요!

0

백기선님의 프로필 이미지
백기선
지식공유자

2020. 08. 06. 09:06

음..? 어떤 설정을 추가하신거죠? 그리고 어떤게 정상 작동 하는지 궁금하신건가요? DDL은 하이버네이트가 엔티티 맵핑 정보와 DB 타입을 바탕으로 생성해 주는데 무슨 문제가 있었나요?