* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
|
Window7 32bit, Linux 64bit 등 |
|
|
[cubrid_rel] 수행 결과 |
|
|
[도움말]-[버전정보] 확인 |
|
|
java, php, odbc 등 입력 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
| 에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
| 관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
안녕하세요 제목과 같이 spring boot 3.5.8 + cubrid 11.4 JPA설정 문의드립니다
----- 1.pom.xml -----
<repositories>
<repository>
<id>cubrid</id>
<name>cubrid-jdbc</name>
<url>https://maven.cubrid.org</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
<dependency>
<groupId>cubrid</groupId>
<artifactId>cubrid-jdbc</artifactId>
<version>11.3.2.0053</version>
</dependency>
</dependencies>
----- 2.application.yml -----
spring:
datasource:
res-admin:
jdbc-url: jdbc:log4jdbc:CUBRID:192.168.0.3:33010:tong:::?charSet=utf-8
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
username: cubrid
password: password
res-user:
jdbc-url: jdbc:log4jdbc:CUBRID:192.168.0.4:33010:tong:::?charSet=utf-8
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
username: cubrid
password: password
jpa:
hibernate:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
properties:
hibernate:
dialect: org.hibernate.dialect.CUBRIDDialect
format_sql: true
show-sql: true
use_sql_comments: true
----- 3. entity -----
@Entity
@Table(name = "tong.res_admins")
@Data @Builder
@AllArgsConstructor
@NoArgsConstructor
public class ResAdmin {
public ResAdmin(String email, String username) {
this.email = email;
this.username = username;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "uid")
private Long uid;
----- 4. repository -----
@Repository
public interface ResAdminRepository extends JpaRepository<ResAdmin, Long> {
Optional<ResAdmin> findByUsername(String username);
Optional<ResAdmin> findByEmail(String email);
}
----- 5. src/main/resources/META-INF/persistence.xml -----
* application.yml에 설정되어있으므로 큰 필요는 없다고 봅니다만..
<persistence-unit name="cubrid">
<properties>
<property name="javax.persistence.jdbc.driver" value="cubrid.jdbc.driver.CUBRIDDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:CUBRID:192.168.21.84:33010:tong:::?charSet=utf-8"/>
<property name="javax.persistence.jdbc.user" value="tong"/>
<property name="javax.persistence.jdbc.password" value="tong1!"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.CUBRIDDialect"/>
<property name="hibernate.show.sql" value="true"/>
<property name="hibernate.format.sql" value="true"/>
<property name="hibernate.use_sql_comment" value="true"/>
<property name="hibernate.naming.physical-strategy" value="org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl"/>
</properties>
</persistence-unit>
======================== 실행에러 =======================
----- 1. 이상태로 동작하면 -----
***************************
APPLICATION FAILED TO START
***************************
Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location:
org.hibernate.dialect.CUBRIDDialect.<init>(CUBRIDDialect.java:35)
The following method did not exist:
'void org.hibernate.dialect.CUBRIDDialect.registerColumnType(int, java.lang.String)'
The calling method's class, org.hibernate.dialect.CUBRIDDialect, was loaded from the following location:
jar:file:/C:/.m2/repository/org/hibernate/hibernate-core/5.6.15.Final/hibernate-core-5.6.15.Final.jar!/org/hibernate/dialect/CUBRIDDialect.class
The called method's class, org.hibernate.dialect.CUBRIDDialect, is available from the following locations:
jar:file:/C:/.m2/repository/org/hibernate/hibernate-core/5.6.15.Final/hibernate-core-5.6.15.Final.jar!/org/hibernate/dialect/CUBRIDDialect.class
The called method's class hierarchy was loaded from the following locations:
org.hibernate.dialect.CUBRIDDialect: file:/C:/.m2/repository/org/hibernate/hibernate-core/5.6.15.Final/hibernate-core-5.6.15.Final.jar
org.hibernate.dialect.Dialect: file:/C:/.m2/repository/org/hibernate/orm/hibernate-core/6.6.36.Final/hibernate-core-6.6.36.Final.jar
Action:
Correct the classpath of your application so that it contains a single, compatible version of org.hibernate.dialect.CUBRIDDialect
Process finished with exit code 1
------ 2.entity-manager를 빼면 -----
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2025-12-10T10:30:00.637+09:00 ERROR 13592 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [kr/daegu/res/auth/config/DataSourceConfig.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to resolve name [org.hibernate.dialect.CUBRIDDialect] as strategy [org.hibernate.dialect.Dialect]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1826) ~[spring-beans-6.2.14.jar:6.2.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) ~[spring-beans-6.2.14.jar:6.2.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[spring-beans-6.2.14.jar:6.2.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.14.jar:6.2.14]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[spring-beans-6.2.14.jar:6.2.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.14.jar:6.2.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) ~[spring-beans-6.2.14.jar:6.2.14]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:973) ~[spring-context-6.2.14.jar:6.2.14]
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to resolve name [org.hibernate.dialect.CUBRIDDialect] as strategy [org.hibernate.dialect.Dialect]
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [org.hibernate.dialect.CUBRIDDialect]
Caused by: java.lang.ClassNotFoundException: Could not load requested class : org.hibernate.dialect.CUBRIDDialect
at org.hibernate.boot.registry.classloading.internal.AggregatedClassLoader.findClass(AggregatedClassLoader.java:216) ~[hibernate-core-6.6.36.Final.jar:6.6.36.Final]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593) ~[na:na]
Suppressed: java.lang.ClassNotFoundException: org.hibernate.dialect.CUBRIDDialect
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]