Phi*_*uno 15 java hibernate jpa hibernate-mapping hibernate-annotations
我的实体中有一个布尔属性.这是我对它的注释:
@Column(name = "IS_ACTIVE", nullable = false, columnDefinition="BIT DEFAULT 1", length = 1)
public Boolean getActive() {
return isActive;
}
Run Code Online (Sandbox Code Playgroud)
但是columnDefinition="BIT DEFAULT 1"没有完美的工作.这是我得到的生成表的SQL代码:
IS_ACTIVE BIT(1) NOT NULL,
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
因此,当我尝试将此类的实例保存到数据库时,我得到异常:
`com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'IS_ACTIVE' cannot be null`
Run Code Online (Sandbox Code Playgroud)
如果我删除nullable = false属性:
@Column(name = "IS_ACTIVE", columnDefinition="BIT DEFAULT 1", length = 1)
public Boolean getActive() {
return isActive;
}
Run Code Online (Sandbox Code Playgroud)
所以我可以在这种情况下保存一个创建的对象.但它仍然没有设置默认值,我在数据库中的这个字段的值中得到NULL.
有什么想法吗?如果它很重要,我使用MySQL Server 5.1.我会非常感谢任何帮助.提前致谢!
Ale*_*r M 34
尝试使用BOOLEAN数据类型,定义您的@Column注释:
@Column(name = "IS_ACTIVE", columnDefinition = "boolean default true", nullable = false)
private Boolean active = true;
Run Code Online (Sandbox Code Playgroud)