Hibernate를 사용하다가 ORA-00933이 발생하였다.

Pagable에 대한 처리를 해야 하는데 오라클인데 쿼리에 "limit"와 "offset"을 사용하여서

잘못된 쿼리를 만들어서 발생을 하게 된 것이었다.


처음에는 하이버네이트 왜 이러지 싶었고, Spring Data JPA의 문제인가

오라클에서는 제대로 처리를 못 하나 싶은 생각이 들었지만

역시나 나의 설정 문제였다.


<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>


오라클 방언 설정을 해야 하는데 H2Dialect를 사용했다가 발생한 문제였다.

오라클 방언으로 설정 변경 후 제대로 동작한다.


Diacect의 종류는 다음과 같다.


RDBMS

 Dialect

 PostgreSQL

 org.hibernate.dialect.PostgreSQLDialect

 MySQL

 org.hibernate.dialect.MySQLDialect

 MySQL with InnoDB

 org.hibernate.dialect.MySQLInnoDBDialect

 MySQL with MyISAM

 org.hibernate.dialect.MySQLMyISAMDialect

 Oracle (any version)

 org.hibernate.dialect.OracleDialect

 Oracle 9i/10g org.hibernate.dialect.Oracle9Dialect

 Oracle 10g

 org.hibernate.dialect.Oracle10gDialect
 Microsoft SQL Server org.hibernate.dialect.SQLServerDialect
 Progress org.hibernate.dialect.ProgressDialect




Reference

[1] JBoss hibernate dialect (https://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/dialect/package-summary.html)

저작자 표시 비영리 변경 금지
신고

Leave a Comment


to Top