有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在postgresql中使用hibernate注释设置列的默认值

我想使用hibernate注释在表中设置整数值的默认值。它可以工作,但当我将默认值设为1时,它总是在数据库中将其设置为零。我不知道我做错了什么。任何帮助都将不胜感激

这就是我正在使用的

@Column(name = "interval",nullable = false, columnDefinition = “int default 1")
private int interval;

我已经检查了几乎所有我不知道的链接,当我将值设置为1时,为什么0会存储在数据库中

我知道我们可以做得很好

@Column(name = "interval",nullable = false, columnDefinition = “int default 1")
private int interval = 1;

但是我不想像上面那样设置值,我想知道如何使用hibernate设置默认值

我已经看到了这些链接 How to set default value in Hibernate Set default values using hibernate annotations in MYSQL


共 (1) 个答案

  1. # 1 楼答案

    这是因为注释描述的是列,而不是数据

    Hibernate不知道原语值是由用户更改的,还是默认保持不变

    在java中,基本整数默认初始化为0。如果希望默认情况下间隔为1,则需要这样的值

    @Column(name = "interval",nullable = false, columnDefinition = “int default 1")
    private int interval = 1;
    

    或者另一种方法是将间隔声明为整数:

    @Column(name = "interval",nullable = false, columnDefinition = “int default 1")
    private Integer interval;