如何查询JPA中哪个值为空的列?

2022-09-02 12:11:05

我正在使用JPA namedQuery从DB中选择数据。

 @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。如何查询JPA中哪个值为空的列?

谢谢。


答案 1

只需将查询更改为

 @NamedQuery(name = "Concept.findByRefTableNull", query = "SELECT c FROM Concept c WHERE c.conceptName = :conceptName and c.refTable IS NULL"),

答案 2

我不确定这是否只是一个Spring Data JPA功能,但我只是在form findByFieldName(Type field)的存储库界面中编写了一个方法,其中fieldName是我需要执行空检查的列的名称。然后,我使用此方法并将 null 作为参数传递。


推荐