首页 > 解决方案 > 休眠中的默认位字段

问题描述

我有一个 MSSQL 旧数据库,它使用BIT,NULL列来表示 Java 布尔值。该列包含值 0,1,NULL。

我希望在 Java 中将所有 NULL 转换为 FALSE,但我不想添加if (x==null) {x=false}到每个 setter 的开头。

  private Boolean digital;

  @Column(name = "Digital", length = 1, nullable = true, columnDefinition = "bit")
  public void setDigital(Boolean digital) {
    if (digital == null) { digital = Boolean.FALSE; }
    this.digital = digital;
  }

我尝试将类型转换为原始布尔值,但休眠抱怨它无法将 NULL 转换为原始类型,即使我在 java 中设置了默认值。

  private boolean digital = false;

  @Column(name = "Digital", length = 1, nullable = false, columnDefinition = "bit")
  public boolean getDigital() {
    return digital;
  }

理想情况下,我想要的是一个返回 true(对于 1)或 false(对于 0 或 NULL)的原始布尔类型。休眠中是否有任何选项可以执行此操作。

标签: javahibernatespring-boot

解决方案


推荐阅读