Doesn't work setting default value of property in Hibernate

若如初见. 提交于 2019-12-31 20:10:53

问题


I have a boolean property in my entity. Here's my annotations for it:

@Column(name = "IS_ACTIVE", nullable = false, columnDefinition="BIT DEFAULT 1", length = 1)
public Boolean getActive() {
    return isActive;
}

But columnDefinition="BIT DEFAULT 1" doen't work perfectly. Here's SQL code I get as result for generated table:

IS_ACTIVE BIT(1) NOT NULL,

What am I doing wrong?

And so when I try to save an instance of this class to the database I get the exception:

`com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'IS_ACTIVE' cannot be null`

If I remove nullable = false property:

@Column(name = "IS_ACTIVE", columnDefinition="BIT DEFAULT 1", length = 1)
public Boolean getActive() {
    return isActive;
}

so I can save a created object in this case. But it's still the default value is not set and I get NULL in the value of this field in database.

Any ideas please? I use MySQL Server 5.1 if it's important. I would be very grateful for any help. Thanks in advance!


回答1:


Try using BOOLEAN data type, define your @Column annotation like that:

@Column(name = "IS_ACTIVE", columnDefinition = "boolean default true", nullable = false)
private Boolean active = true;



回答2:


reference to the correct answer in this link How to set default value in Hibernate

If you want a real database default value, use columnDefinition - @Column(name = “myColumn”, nullable = false, columnDefinition = “int default 100"). Notice that the string in columnDefinition is database dependent. Also if you choose this option, you have to use dynamic-insert, so Hibernate doesn't include columns with null values on insert. Otherwise talking about default is irrelevant.

The key of the solution is dynamic-insert annotation. You can add it to your entity class as this example: @org.hibernate.annotations.Entity(dynamicInsert = true)



来源:https://stackoverflow.com/questions/13593990/doesnt-work-setting-default-value-of-property-in-hibernate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!