不良的类型 long : 170141183460469231731687303715884105727

1、原因: 连接vastbase数据库序列最大值过大

可以执行下面代码进行查询序列

select * from information_schema.sequences

2、解决方案 (二选一)

1、vastbase数据库补丁升级

2、重写getQuerySequencesString方法

查看其底层源码发现实际上是调用了getQuerySequencesString()方法

其中PostgreSQL81Dialect该类的方法如下所示

问题找到了,进行重写方法,可以根据自己的pg版本选择继承的dialect 

public class AdpPostgreSQLDialect extends PostgreSQL10Dialect {

    public AdpPostgreSQLDialect() {
        super();
        registerColumnType(Types.BLOB, "bytea");
        registerColumnType(Types.CLOB, "text");
    }

    @Override
    public SqlTypeDescriptor remapSqlTypeDescriptor(SqlTypeDescriptor sqlTypeDescriptor) {
        switch (sqlTypeDescriptor.getSqlType()) {
            case Types.CLOB:
                return LongVarcharTypeDescriptor.INSTANCE;
            case Types.BLOB:
                return LongVarbinaryTypeDescriptor.INSTANCE;
            case Types.NCLOB:
                return LongVarbinaryTypeDescriptor.INSTANCE;
        }
        return super.remapSqlTypeDescriptor(sqlTypeDescriptor);
    }


    @Override
    public String getQuerySequencesString() {
        return null;
    }
}

properties文件添加如下配置,com.fx.config.dialect修改为自己的包名

spring.jpa.properties.hibernate.dialect=com.fx.config.dialect.AdpPostgreSQLDialect

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值