#java #spring-boot #hibernate #apache-camel #oracle-sqldeveloper
#Ява #пружинный ботинок #зимовать #апач-верблюд #oracle-разработчик sqld
Вопрос:
Я хочу получить доступ к базе данных oracle sql с помощью spring jpa, так как это удаленный сервер и apache camel. Это пример кода: RouteBuilder
rest("/getfromdb") .get() .to("direct:getfromdb"); from("direct:getfromdb") .transform().simple("SELECT PERSON_ID FROM XXISF_LEAVE_TEMP;") .to("jdbc:dataSource") //spring boot starter jdbc creates the bean in the registry .log("${body}");
файл application.properties
server.port=9085 camel.servlet.mapping.context-path=/* spring.datasource.url=jdbc:oracle:thin:@server:port/serviceName spring.datasource.username=apps spring.datasource.password=OneTeam2020 spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect
pom, зависимости, связанные с jdbc и jpa:
lt;dependencygt; lt;groupIdgt;com.oracle.ojdbclt;/groupIdgt; lt;artifactIdgt;orai18nlt;/artifactIdgt; lt;versiongt;19.3.0.0lt;/versiongt; lt;/dependencygt; lt;dependencygt; lt;groupIdgt;org.apache.camel.springbootlt;/groupIdgt; lt;artifactIdgt;camel-jdbc-starterlt;/artifactIdgt; lt;versiongt;${camel.version}lt;/versiongt; lt;!-- use the same version as your Camel core version --gt; lt;/dependencygt; lt;dependencygt; lt;groupIdgt;org.springframework.bootlt;/groupIdgt; lt;artifactIdgt;spring-boot-starter-data-jpalt;/artifactIdgt; lt;/dependencygt; lt;dependencygt; lt;groupIdgt;com.oraclelt;/groupIdgt; lt;artifactIdgt;ojdbc10lt;/artifactIdgt; lt;versiongt;19.3.0.0lt;/versiongt; lt;/dependencygt; lt;dependencygt; lt;groupIdgt;org.springframework.bootlt;/groupIdgt; lt;artifactIdgt;spring-boot-starter-jdbclt;/artifactIdgt; lt;/dependencygt; lt;dependencygt; lt;groupIdgt;org.apache.camellt;/groupIdgt; lt;artifactIdgt;camel-jdbclt;/artifactIdgt; lt;versiongt;${camel.version}lt;/versiongt; lt;/dependencygt;
Обратите внимание, что моя база данных oracle составляет 19c, и я получаю следующие ошибки:
1- java.sql.SQLException: Numeric Overflow 2- 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; 3- nested exception is org.hibernate.exception.GenericJDBCException: Unable to build DatabaseInformation
Итак, есть идеи, как решить эту проблему? потому что я не нашел ничего, что могло бы помочь. Спасибо
Комментарии:
1. Я изменил файл application.properties:
server.port=9085 camel.servlet.mapping.context-path=/* customerKey = admin customerSecret = OneTeam2020 spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1531/hrmsdb spring.datasource.username=apps spring.datasource.password=OneTeam2020 spring.jpa.hibernate.ddl-auto=none spring.datasource.initialization-mode=always
таким образом, ошибки устранены, за исключениемnumeric oveflow
ошибки2. Где вы получаете числовое переполнение? Как выглядит таблица и какой это столбец?