jpa hibernate 不能映射 boolean

2025-03-11 05:31:40
推荐回答(2个)
回答1:

1.JPA本身是不支持boolean。可以用Hibernater自带的标签.修改如下.

@Column(name = "manager_log")
@org.hibernate.annotations.Type(type="yes_no")
private boolean manageLog = false; // 能否管理系统日志

2.当然你也可以不用Hibernater的标签,但要改写setter,getter方法

给你一个例子:
@Entity
public class User {
@Id
private Integer id;

@Basic
private Character enabled;

public Boolean getEnabled() {
if (enabled == null) return null;
return enabled == 'Y' ? Boolean.TRUE : Boolean.FALSE;
}

public void setEnabled(Boolean enabled) {
if (enabled == null) {
this.enabled = null;
} else {
this.enabled = enabled == true ? 'Y' : 'N';
}
}
}

回答2:

检查一下有没有default之类的东西,默认值,如果实再不行,你手动适当更改一下HBM中的类型也是可以的。。。