【发布时间】:2016-01-15 13:45:37
【问题描述】:
我有映射到数据库的类。 这是我使用休眠的标准 API 函数:
public List<Department> getDepartmentBy(Account account)
{
return createCriteria(Department.class)
.add(Restrictions.eq("account ", account))
.add(Restrictions.eqOrIsNull("archive", false))
.list();
}
如果没有 eqOrIsNull,我在 DB 中有 8 条带有 archieve = null 的记录。
我的班级:
private Account _account;
private boolean _archive = false;
@ManyToOne
@JoinColumn(name = "account_l", nullable = false)
public Account getAccount ()
{
return _account;
}
public void setAccount(Account account)
{
_account = account;
}
@Column(name = "archive_p")
public boolean isArchive()
{
return _archive;
}
public void setArchive(boolean archive)
{
_archive = archive;
}
这是错误吗?还是我使用了错误的标准 API?
UPD:准确的解释
我在数据库中有 8 条记录,archive_p 等于 null。当我想在“存档”字段中选择“假”或空的记录时,我使用add(Restrictions.eqOrIsNull("archive", false))。我需要 NULL 或 'false' 的记录。但是当我添加 .add(Restrictions.eqOrIsNull("archive", false)) 时,我得到 0 条记录。
【问题讨论】:
-
您能描述一下您所面临的具体问题吗?
-
添加更新,但得到正确答案