繁体   English   中英

是否可以将 Hibernate 的自定义映射器从 NUMBER 数据库类型添加到 Java Integer?

[英]Is it possible to add custom mapper for Hibernate from NUMBER database type to Java Integer?

从 Snowflake NUMBER 类型映射到 Java Integer 存在问题,因为无法设置类似 INTEGER 的数据库类型,因为 Snowflake 将其转换为 NUMBER(38, 0)。

你可以在这里阅读: https : //docs.snowflake.com/en/sql-reference/data-types-numeric.html#int-integer-bigint-smallint-tinyint-byteint

所以我想问一下是否可以让 JPA 返回Integer类型而不是BigInteger

这是表 ddl:

CREATE TABLE person
(
    name TEXT,
    age INTEGER -- will be converted to NUMBER(38, 0) automatically
);

这是 JPA Repository 方法:

@Query(value = "SELECT age FROM person WHERE name = :name", nativeQuery = true)
Set<Integer> findAgesByName(@Param("name") String name);

结果findAgesByName返回Set<BigInteger>而不是Set<Integer>并且我收到ClassCastException

提前致谢!

这是正确的,它被转换为 Numeric(38,0) 以帮助提高性能和存储。

这里列出的表格方法有帮助吗?

将 getInt() 添加到您的查询中?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM