我正在研究Hibernate 3.3。最近我开始使用标准。我的注释类如下..
@Entity
@Table(name = "EMAG_ADMINLOGIN", schema = "EMAG_USER")
public class Adminlogin implements java.io.Serializable {
private String username;
private String password;
private String fullname;
private long isenabled;
@Id
@Column(name = "USERNAME", unique = true, nullable = false, length = 40)
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
@Column(name = "PASSWORD", length = 40)
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
@Column(name = "FULLNAME", nullable = false, length = 100)
public String getFullname() {
return this.fullname;
}
public void setFullname(String fullname) {
this.fullname = fullname;
}
@Column(name = "ISENABLED", precision = 0)
public long getIsenabled() {
return this.isenabled;
}
public void setIsenabled(long isenabled) {
this.isenabled = isenabled;
}
}
我的标准代码如下
Criteria criteria=session.createCriteria(Adminlogin.class);
criteria=criteria.add(Restrictions.eq("username", "admin"));
List list=criteria.list();
此代码在行上的isEnabled值为null时显示错误。我知道它不能将null值转换为原始数据类型long。所以我想知道是否有任何其他方法可以跳过任何属性的null值。 (我发布了一个表类,我有更多的表具有相同类的类映射)
答案 0 :(得分:1)
尝试使用NotFound注释: 可能是你的问题将得到解决
@NotFound(action = NotFoundAction.IGNORE)
答案 1 :(得分:1)
根据您的要求,将'isenabled'的类型更改为'Long'或为db schema中的列定义默认值。