VARCHAR(1)vs BOOLEAN

时间:2017-07-24 11:55:45

标签: java hibernate sqldatatypes

在数据库中保存VARCHAR(1)是个好主意,其中“0”表示false,“1”表示true吗?我不这么认为,但这是我现在工作的公司的常见做法。实体看起来像

@Entity
public class MyEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @Column(name = "my_field")
    private String myField;

    // getter-setter

}

使用BOOLEAN不是更好吗?我之前从未这样做过,这与hibernate一起如何工作?

@Entity
public class MyEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @Column(name = "my_field")
    private boolean myField;

    // getter-setter

}

是否需要这一切?

1 个答案:

答案 0 :(得分:0)

有一个简单的经验法则:当有经验的读者感到惊讶时,这是不好的做法。

警告:公司内部众所周知的做法可能不会让该公司的有经验的用户感到惊讶。但你仍然有“惊喜”的问题;例如,当新人加入该团队/公司时。

这种方法存在的真正问题是:它强制您的代码拥有其他不需要的知识!含义:代码定义该数据库条目的含义。当数据库字段具有布尔类型时,除此之外不需要任何解释。