java - 如果可能的话, float 基元返回 null,如果数据库中的值为 null,则返回特定值

标签 java jpa

所以基本上正如标题提到的,这就是我想要做的,我定义了此列

@Column(name="MATCH_SCORE", columnDefinition="NUMBER(10,4) default '-1.0000'")
private float matchScore;

所以我期望的是,如果该值在数据库中为空,则返回 -1,但是,我仍然将其视为 0,这是一个问题,因为如果该值为零,则我必须采取特定操作如果该值为 null,请不要执行此操作,不幸的是,我无法对数据库进行任何更改,因此我必须从应用程序端执行此操作。

干杯。

最佳答案

这里的部分问题可能是原始 float 不能为 null。相反,您可以使用Float,但映射NUMBER(精确精度)列的更好选择是BigDecimal。试试这个版本:

@Column(name="MATCH_SCORE", columnDefinition="NUMBER(10,4) default -1.0000")
private BigDecimal matchScore;

另请注意,列默认值的目的是,如果发生插入并且没有为该列指定值(或NULL),则数据库将使用该默认值。默认值实际上与您选择时发生的情况没有任何关系;该记录的列中的任何值都将被返回。

关于java - 如果可能的话, float 基元返回 null,如果数据库中的值为 null,则返回特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59055578/

相关文章:

java - servlet 过滤器如何在请求页面上发送错误消息?

java - Android 应用程序在启动后停止工作

java - @override 在 android 中使用 onDraw 导致错误

java - 获取ArrayList中值的索引

java - 服务器未收到客户端的请求

java - 当文本包含多种语言时,带有 Blob 的 JPA native 查询将 Blob 结果转换为问号

java - Hibernate版本支持Oracle12cDialect和JPA 2.0

java - Eclipselink 缓存 - 在事务中保留相同的对象

java - 从 Spring Data JpaRepository 返回 @id 字段

java - 如何在JPQL中随机选择10条记录?