云服务器内容精选

  • 处理方法 方法1:启动客户端环境中的haveged服务,增加系统熵池熵值以提高读取随机数的速度。启动命令为: systemctl start haveged 方法2:调整客户端jdk配置 打开$JAVA_PATH/jre/lib/security/java.security文件,修改以下两个配置项: securerandom.source=file:/dev/./urandom securerandom.strongAlgorithms=NativePRNGNonBlocking:SUN 方法2的本质是在获取强随机数时,使用伪随机数代替,减少需要消耗的熵值。会影响客户端所有使用该jdk的应用,在获取强随机数时会使用伪随机数代替。
  • 原因分析 A模式数据库能够插入成功并通过校验:Hibernate框架在校验数据时,通过判断插入数据类型java.lang.Long的TypeCode,与表结构的number类型的TypeCode进行对比,结果不一致,随后会把插入数据的long类型的sqlType与表结构的Type作比较,将long类型转成number(19,0)(对应关系由org.hibernate.dialect.OracleDialect进行维护),因为表结构的type是number,number(19,0)以number开头,所以校验可以通过。使用A模式数据库时,业务代码涉及整数类型的数据,可以使用Java中的long类型插入。 GaussDB数据库 校验不同,关闭校验后数据插入成功:Hibernate框架在插入数据做校验时,业务代码是java.lang.Long类型,和表数据类型bigint的TypeCode是对应的,所以不报错。但是表数据类型是Integer时无法对应,首先判断业务代码java.lang.Long类型的TypeCode,与表数据Integer的TypeCode比较,结果不一致,之后根据org.hibernate.dialect.PostgreSQLDialect对应关系,会将long类型转换为int8,将表数据类型Integer转换为int4,无法对应,所以校验失败。使用 GaussDB 数据库时,业务代码涉及整数类型的数据,必须使用表类型对应的Java整型。
  • 原因分析 A模式数据库能够插入成功并通过校验:Hibernate框架在校验数据时,通过判断插入数据类型java.lang.long的TypeCode,与表结构的number类型的TypeCode进行对比,结果不一致,随后会把插入数据的long类型的sqlType与表结构的Type作比较,将long类型转成number(19,0)(对应关系由org.hibernate.dialect.OracleDialect进行维护),因为表结构的type是number类型,number(19,0)以number开头,所以校验可以通过。使用A模式数据库时,业务代码涉及整数类型的数据,可以使用Java中的Long类型插入。 GaussDB数据库校验不同,关闭校验后数据插入成功:Hibernate框架在插入数据做校验时,业务代码是java.lang.long类型,和表数据类型bigint的TypeCode是对应的,因此不报错。但是表数据类型是Integer时无法对应,首先判断业务代码java.lang.long类型的TypeCode,与表数据Integer的TypeCode比较,结果不一致,再根据org.hibernate.dialect.PostgreSQLDialect对应关系,会将Long类型转换为int8,将表数据类型Integer转换为int4,无法对应,所以校验失败。使用GaussDB数据库时,业务代码涉及整数类型的数据,必须使用表类型对应的Java整型。
  • 处理方法 方法1:启动客户端环境中的haveged服务,增加系统熵池熵值以提高读取随机数的速度。启动命令为: systemctl start haveged 方法2:调整客户端jdk配置 打开$JAVA_PATH/jre/lib/security/java.security文件,修改以下两个配置项: securerandom.source=file:/dev/./urandom securerandom.strongAlgorithms=NativePRNGNonBlocking:SUN 方法2的本质是在获取强随机数时,使用伪随机数代替,减少需要消耗的熵值。会影响客户端所有使用该jdk的应用,在获取强随机数时会使用伪随机数代替。
  • 处理方法 方法1:启动客户端环境中的haveged服务,增加系统熵池熵值以提高读取随机数的速度。启动命令为: systemctl start haveged 方法2:调整客户端jdk配置 打开$JAVA_PATH/jre/lib/security/java.security文件,修改以下两个配置项: securerandom.source=file:/dev/./urandom securerandom.strongAlgorithms=NativePRNGNonBlocking:SUN 方法2的本质是在获取强随机数时,使用伪随机数代替,减少需要消耗的熵值。会影响客户端所有使用该jdk的应用,在获取强随机数时会使用伪随机数代替。
  • 处理方法 方法1:启动客户端环境中的haveged服务,增加系统熵池熵值以提高读取随机数的速度。启动命令为: systemctl start haveged 方法2:调整客户端jdk配置 打开$JAVA_PATH/jre/lib/security/java.security文件,修改以下两个配置项: securerandom.source=file:/dev/./urandom securerandom.strongAlgorithms=NativePRNGNonBlocking:SUN 方法2的本质是在获取强随机数时,使用伪随机数代替,减少需要消耗的熵值。会影响客户端所有使用该jdk的应用,在获取强随机数时会使用伪随机数代替。
  • 原因分析 ORA模式数据库能够插入成功并通过校验:Hibernate框架在校验数据时,通过判断插入数据类型java.lang.long的TypeCode,与表结构的number类型的TypeCode进行对比,结果不一致,随后会把插入数据的long类型的sqlType与表结构的Type作比较,将long类型转成number(19,0)(对应关系由org.hibernate.dialect.OracleDialect进行维护),因为表结构的type是number,number(19,0)以number开头,所以校验可以通过。使用ORA模式数据库时,业务代码涉及整数类型的数据,可以使用Java中的Long类型插入。 GaussDB数据库校验不同,关闭校验后数据插入成功:Hibernate框架在插入数据做校验时,业务代码是java.lang.long类型,和表数据类型bigint的TypeCode是对应的,所以不报错。但是表数据类型是Integer时无法对应,首先判断业务代码java.lang.long类型的TypeCode,与表数据Integer的TypeCode比较,结果不一致,之后根据org.hibernate.dialect.PostgreSQLDialect对应关系,会将long类型转换为int8,将表数据类型Integer转换为int4,无法对应,所以校验失败。使用GaussDB数据库时,业务代码涉及整数类型的数据,必须使用表类型对应的Java整型。