Spring Boot JPA - Hibernate 中的数字溢出异常

问题描述 投票:0回答:1

我有以下错误:

Caused by: java.sql.SQLException: Desbordamiento Numérico
at oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:4139)
at oracle.jdbc.driver.NumberCommonAccessor.getLong(NumberCommonAccessor.java:636)
at oracle.jdbc.driver.GeneratedStatement.getLong(GeneratedStatement.java:208)
at oracle.jdbc.driver.GeneratedScrollableResultSet.getLong(GeneratedScrollableResultSet.java:261)
at oracle.jdbc.driver.GeneratedResultSet.getLong(GeneratedResultSet.java:560)
at com.zaxxer.hikari.pool.HikariProxyResultSet.getLong(HikariProxyResultSet.java)
at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.resultSetMinValue(SequenceInformationExtractorLegacyImpl.java:115)
at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.lambda$extractMetadata$0(SequenceInformationExtractorLegacyImpl.java:55)
at org.hibernate.tool.schema.extract.spi.ExtractionContext.getQueryResults(ExtractionContext.java:50)
at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:39)
at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.initializeSequences(DatabaseInformationImpl.java:66)
at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.<init>(DatabaseInformationImpl.java:60)
at org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation(Helper.java:183)
... 127 common frames omitted

我尝试过更改不同版本的 JDBC 驱动程序。

这些是我的财产:

# BBDD
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
#spring.datasource.url=jdbc:oracle:thin:@test:1521:orcl
spring.datasource.url=jdbc:oracle:thin:@test:1521/orcl
spring.datasource.username=TEST1
spring.datasource.password=TEST1
spring.jpa.database-platform=org.hibernate.dialect.OracleDialect
#spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
#spring.jpa.database-platform=org.hibernate.dialect.Oracle12cDialect
#spring.jpa.database-platform=org.hibernate.dialect.Oracle9iDialect
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

(我尝试过几种方言和评论通道驱动类和平台)

这些是我的模型类:

    @Entity
    public class Configuracion extends Base implements Serializable {
    private static final long serialVersionUID = 1L;
    
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    
    @NotNull
    @Length(max=32)
    private String clave;
    
    @NotNull
    @Length(max=512)
    private String valor;
    }
  @Entity
  public class Callback extends Base implements Serializable {
  private static final long serialVersionUID = 1L;


  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;
  
  private String ine10;
  private String nombre;
  
  @NotNull
  private String org;
  @NotNull
  private String entity;
  @NotNull
  private String user;
  @Column(length = 2048)
  private String pass;
  @NotNull
  private String key;
  @Entity
  public class Entidad Base implements Serializable {
  private static final long serialVersionUID = 1L;


  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;
  
  @NotNull @ManyToOne @JoinColumn
  private Entidad entidad;
  
  @NotNull @Length(max=12)
  private String aplicacion;
  
  @Length(max=24)
  private String origen;
  
  @Length(max=256)
  private String clave;
  
  @Lob
  private String peticion;
  
  @Lob
  private String respuesta;

在我的场所,它可以正确指向安装在 docker 中的 Oracle 21g。它不起作用的是具有 19g 的客户端。

oracle 19.0.0.0版本数据库。

我唯一希望的是应用程序能够启动,我已经翻译了 Oracle 抛出的查询,并且我已经手动运行它们并且它们可以工作。

oracle hibernate jpa overflow numeric
1个回答
0
投票

既然你有 spring.jpa.show-sql=true,你可以尝试直接在数据库中执行该 SQL(通过 sqldeveloper 或类似的)并检查它是数据库还是驱动程序的方言?

© www.soinside.com 2019 - 2024. All rights reserved.