Ответ 1
Просто измените свой запрос на
@NamedQuery(name = "Concept.findByRefTableNull", query = "SELECT c FROM Concept c WHERE c.conceptName = :conceptName and c.refTable IS NULL"),
Я использую JPA namedQuery для выбора данных из БД.
@NamedQuery(name = "Concept.findByRefTableNull", query = "SELECT c FROM Concept c WHERE c.conceptName = :conceptName and c.refTable = :refTable"),
///
List<Concept> attributeList
= em.createNamedQuery("Concept.findByRefTableNull")
.setParameter("conceptName", "student").
setParameter("refTable", null).
getResultList();
System.out.println(attributeList.size()); //return 0
Размер списка равен 0, но я уверен, что он должен иметь записи. Причина - refTable. Как запросить столбец, значение которого равно null в JPA?
Спасибо.
Просто измените свой запрос на
@NamedQuery(name = "Concept.findByRefTableNull", query = "SELECT c FROM Concept c WHERE c.conceptName = :conceptName and c.refTable IS NULL"),
я бы избегал запросов вообще - это в значительной степени отрицает чувство упорства-абстракции. Создайте динамические запросы с помощью API критериев, это обеспечит переносимость. И вы сможете в какой-то степени переключать базы данных без особых проблем.
Я не уверен, что это только функция данных JPA, но я просто пишу метод в интерфейсе репозитория формы findByFieldName (поле Type), где fieldName - это имя столбца, в котором мне нужно выполнить null проверка. Затем я использую этот метод и передаю значение null в качестве параметра.