У меня есть класс, который отображается на db. Это мой критерий API функция спящего режима:Критерий спящего режима eqOrIsNull возвращает неправильное значение
public List<Department> getDepartmentBy(Account account)
{
return createCriteria(Department.class)
.add(Restrictions.eq("account ", account))
.add(Restrictions.eqOrIsNull("archive", false))
.list();
}
Без eqOrIsNull У меня есть 8 записей с нулевым = АРХИВ в БД.
Мой класс:
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: Точное explanaition
У меня есть 8 записей в базе данных с archive_p равна нулю. Когда я хочу выбрать записи с «ложным» или «нулевым» в поле «архив», я использую add(Restrictions.eqOrIsNull("archive", false))
. Мне нужны записи с NULL или с «false». Но когда я добавляю .add(Restrictions.eqOrIsNull("archive", false))
, я получаю 0 записей.
можете ли вы описать точный вопрос, с которым вы столкнулись? –
добавьте обновление, но получите правильный ответ – flybox