FORUM

조회 수 468 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Window7 32bit, Linux 64bit 등
CUBRID Ver.
10.2x
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
Spring boot 2.7.x 기반 애플리케이션


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
 

Spring boot 2.7.x 기반의 프로젝트를 진행하고있습니다.

db는 cubrid 10.2 버전을 사용하고있고, Spring boot starter data jpa를 통해 db에 엑세스하려고 합니다.

JpaRepository를 통해 조회는 잘 동작하지만 insert의 resultset을 반환하는 과정에서 이슈가 발생하는 것 같습니다.

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "HISTRY_SEQ")
private Long seq;

위 처럼 Entity 클래스의 @Id 필드가 Long으로 정의되어있고 @GeneratedValue(strategy = GenerationType.IDENTITY) 데코레이터를 추가하였습니다.

테이블의 pk컬럼은 histry_seq numeric(10,0) auto_increment 로 정의하였습니다.

jpaRepository.save 핸들러 호출시 pk의 데이터 타입을 조회하면서 getLong 메소드에서 에러가 발생합니다.
 

db에서 serial 정의 후 @GeneratedValue(strategy = GenerationType.Sequence)로 변경하면 jpaRepository.save 는 잘 동작하지만, 
serial은 기피하고 싶어 질문 드립니다.

 

cubrid에서 권장하는 jpa의 id 생성 전략은 무엇이며 @GeneratedValue(strategy = GenerationType.IDENTITY)를 사용하려면 어떻게 해야 할까요?


스택 트레이스도 아래 추가하곘습니다.

java.lang.NullPointerException: Cannot invoke "cubrid.jdbc.driver.CUBRIDConnection.createCUBRIDException(int, java.lang.Throwable)" because "this.con" is null

at cubrid.jdbc.driver.CUBRIDResultSet.findColumn(CUBRIDResultSet.java:694) ~[cubrid-jdbc-11.3.0.0047.jar:na]

at cubrid.jdbc.driver.CUBRIDResultSet.getLong(CUBRIDResultSet.java:604) ~[cubrid-jdbc-11.3.0.0047.jar:na]

at com.zaxxer.hikari.pool.HikariProxyResultSet.getLong(HikariProxyResultSet.java) ~[HikariCP-4.0.3.jar:na]

at org.hibernate.id.IdentifierGeneratorHelper.extractIdentifier(IdentifierGeneratorHelper.java:159) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.id.IdentifierGeneratorHelper.get(IdentifierGeneratorHelper.java:145) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.id.IdentifierGeneratorHelper.getGeneratedIdentity(IdentifierGeneratorHelper.java:77) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.dialect.identity.GetGeneratedKeysDelegate.executeAndExtract(GetGeneratedKeysDelegate.java:62) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:43) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3279) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3907) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:84) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:645) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:282) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:263) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:317) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:329) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:286) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:192) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:122) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:185) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:128) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:55) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:756) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:742) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]

at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na]

at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:362) ~[spring-orm-5.3.31.jar:5.3.31]

at jdk.proxy4/jdk.proxy4.$Proxy103.persist(Unknown Source) ~[na:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]

at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na]

at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:315) ~[spring-orm-5.3.31.jar:5.3.31]

at jdk.proxy4/jdk.proxy4.$Proxy103.persist(Unknown Source) ~[na:na]

at org.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:666) ~[spring-data-jpa-2.7.18.jar:2.7.18]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]

at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na]

at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:289) ~[spring-data-commons-2.7.18.jar:2.7.18]

at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.7.18.jar:2.7.18]

at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.7.18.jar:2.7.18]

at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:530) ~[spring-data-commons-2.7.18.jar:2.7.18]

at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:286) ~[spring-data-commons-2.7.18.jar:2.7.18]

at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:640) ~[spring-data-commons-2.7.18.jar:2.7.18]

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.31.jar:5.3.31]

at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164) ~[spring-data-commons-2.7.18.jar:2.7.18]

at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.7.18.jar:2.7.18]

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.31.jar:5.3.31]

at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:76) ~[spring-data-commons-2.7.18.jar:2.7.18]

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.31.jar:5.3.31]

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.31.jar:5.3.31]

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.31.jar:5.3.31]

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.31.jar:5.3.31]

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.31.jar:5.3.31]

at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.31.jar:5.3.31]

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.31.jar:5.3.31]

at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:174) ~[spring-data-jpa-2.7.18.jar:2.7.18]

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.31.jar:5.3.31]

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.31.jar:5.3.31]

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.31.jar:5.3.31]

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241) ~[spring-aop-5.3.31.jar:5.3.31]

at jdk.proxy4/jdk.proxy4.$Proxy106.save(Unknown Source) ~[na:na]

  • ?
    김동민 2025.02.13 19:32
    안녕하세요.

    JDBC 다음 릴리스에 JPA @GeneratedValue(strategy = GenerationType.IDENTITY) 사용을 지원하기로 결정했습니다.
    현재 CUBRID로 JPA 사용 시 @GeneratedValue(stratgy = GenerationType.Sequence) 사용을 권장합니다.

    감사합니다.

  1. CUBRID 사용자를 위한 DBeaver 도구 출시 안내

    Date2024.04.23 Byadmin Views45658
    read more
  2. 큐브리드 매니저 서버 패치 질문드립니다.

    Date2025.03.20 By11시38분 Views808
    Read More
  3. 질의 자동화 설정 방법

    Date2025.03.19 ByPLU5 Views776
    Read More
  4. cubrid restore 시 오류

    Date2025.03.04 By서커스 Views825
    Read More
  5. 안녕하세요. 구버전 다운로드 관련 문의드립니다.

    Date2025.02.26 By\OoO/ Views778
    Read More
  6. Slow 로그 관련 파라미터 설정 변경 문의

    Date2025.02.25 Bysherpa1 Views837
    Read More
  7. CUBRID 관련 최근 논문 및 학회지 정보 문의

    Date2025.02.18 Bycubridd Views764
    Read More
  8. 11.2 데이터베이스 생성 오류

    Date2025.02.17 ByjohnDoe Views583
    Read More
  9. Linux cubrid 설치 path 는 어떻게 될까요???

    Date2025.02.17 By스마트웨이브 Views505
    Read More
  10. 오라클의 버퍼캐시 히트율과 같이 캐시 히트율을 알 수 없을까요?

    Date2025.02.16 By호야호야 Views508
    Read More
  11. 리눅스 서버에 갑자기 접속이 안됩니다.

    Date2025.02.14 By스마트웨이브 Views506
    Read More
  12. (윈도우 환경) 데이터베이스 외부 접속이 안됨

    Date2025.02.13 Bytndus Views8531
    Read More
  13. curl: (35) error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol 에러 관련 문의드립니다

    Date2025.02.13 By잘했어요 Views501
    Read More
  14. 통계정보를 어떻게 이관할 수 있을까요 ?

    Date2025.02.12 By나제인 Views525
    Read More
  15. cubrid 10.x 버전에서 jpa 사용시 기본키 생성 전략 이슈

    Date2025.02.05 By중꺽마 Views468
    Read More
  16. DBeaver 폐쇄망 사용시 문제점

    Date2025.02.04 By파랑조아유 Views519
    Read More
  17. 성능 데이터 수집을 위한 방법 문의 드립니다.

    Date2025.01.22 By양념생막창 Views519
    Read More
  18. 테이블 생성 시, 컬럼명으로 value, domain 등 예약어? 사용 불가? 해결방법

    Date2025.01.20 By아저씨1212 Views578
    Read More
  19. cubrid loaddb 관련 질의 드립니다.(내용수정->해결되었습니다.)

    Date2025.01.16 By아저씨1212 Views1114
    Read More
  20. CentOS7.x EOS에 따른 Rocky 8.10으로 CUBRID 마이그레이션 관련 문의드립니다.

    Date2025.01.09 By닉네임없음 Views847
    Read More
  21. plandump api 질문 드립니다

    Date2025.01.06 By잘했어요 Views778
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 210 Next
/ 210

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

나눔고딕 사이트로 가기

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5