0

I am trying to use micronaut with oracle and jpa (come up with hello world application) but hibernate session factory instantiation is throwing an exception

it appears that one of the sequence is out of range. but my application or entity is not loading any entity.

io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [org.hibernate.SessionFactory] could not be loaded: Error instantiating bean of type [org.hibernate.SessionFactory]: Unable to build DatabaseInformation
    at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1359)
    at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:236)
    at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:2543)
    at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:204)
    at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:188)
    at io.micronaut.runtime.Micronaut.start(Micronaut.java:64)
    at io.micronaut.runtime.Micronaut.run(Micronaut.java:294)
    at io.micronaut.runtime.Micronaut.run(Micronaut.java:280)
    at com.mypackage.main(Service.java:7)
Caused by: io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [org.hibernate.SessionFactory]: Unable to build DatabaseInformation
    at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1721)
    at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
    at io.micronaut.context.DefaultBeanContext.loadContextScopeBean(DefaultBeanContext.java:1983)
    at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1357)
    ... 8 common frames omitted
Caused by: org.hibernate.exception.GenericJDBCException: Unable to build DatabaseInformation
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
    at org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation(Helper.java:163)
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:96)
    at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:184)
    at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:73)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:320)
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:462)
    at io.micronaut.configuration.hibernate.jpa.EntityManagerFactoryBean.hibernateSessionFactory(EntityManagerFactoryBean.java:170)
    at io.micronaut.configuration.hibernate.jpa.$EntityManagerFactoryBean$HibernateSessionFactory3Definition.build(Unknown Source)
    at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:125)
    at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
    ... 11 common frames omitted
Caused by: java.sql.SQLException: Numeric Overflow
    at oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:4136)
    at oracle.jdbc.driver.NumberCommonAccessor.getLong(NumberCommonAccessor.java:634)
    at oracle.jdbc.driver.GeneratedStatement.getLong(GeneratedStatement.java:206)
    at oracle.jdbc.driver.GeneratedScrollableResultSet.getLong(GeneratedScrollableResultSet.java:259)
    at oracle.jdbc.driver.GeneratedResultSet.getLong(GeneratedResultSet.java:558)
    at com.zaxxer.hikari.pool.HikariProxyResultSet.getLong(HikariProxyResultSet.java)
    at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.resultSetMinValue(SequenceInformationExtractorLegacyImpl.java:134)
    at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:60)
    at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.initializeSequences(DatabaseInformationImpl.java:65)
    at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.<init>(DatabaseInformationImpl.java:59)
    at org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation(Helper.java:155)
    ... 20 common frames omitted

and application.yml is

---
micronaut:
    application:
        name: mohamedmiledijpa
        max: 50
    environments: tst
    server:
      port: 8083


---

datasources:
  default:
    url: jdbc:oracle:thin:@machinename:1521:db
    driverClassName: oracle.jdbc.driver.OracleDriver
    username: usr
    password: pwd



jpa:
  default:
    packages-to-scan: com.myservice.entity
    properties:
      hibernate:
        hbm2ddl:
          auto: update

  servicename:
      service:
        name: myservice
        realm: env1




any help will be really appreciated. All the examples of micronaut data are using h2 database. has someone faced any issues connecting to oracle with micronuat data

build.gradle

apply plugin: 'application'
apply plugin: 'java'
apply plugin: 'distribution'


mainClassName = "mainclass"


dependencies {


    annotationProcessor platform("io.micronaut:micronaut-bom:$micronautVersion")
    annotationProcessor "io.micronaut:micronaut-inject-java"
    annotationProcessor "io.micronaut:micronaut-validation"
    implementation "io.micronaut.configuration:micronaut-hibernate-jpa" // <1>
    implementation "io.micronaut.configuration:micronaut-jdbc-hikari" // <2>
    runtimeOnly 'com.oracle:ojdbc8:12.2.0.1.0'

    compile "io.micronaut:micronaut-http-server-netty"

    compile "io.micronaut.configuration:micronaut-hibernate-jpa"
}


test.classpath += configurations.developmentOnly

tasks.withType(JavaCompile){
    options.encoding = "UTF-8"
    options.compilerArgs.add('-parameters')
}

repositories {
 // organisation repositories , removed purposefully here
}



task processConfig(type: Copy) {
    from('src/main/resources') {
        include '**/*'
    }

    into ('src/dist/resources')
}

classes {
    classes.dependsOn processConfig
}

Ashish Garg
  • 101
  • 1
  • 7

0 Answers0