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

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

@NamedQuery(name = "Concept.findByRefTableNull", query = "SELECT c FROM Concept c WHERE c.conceptName = :conceptName and c.refTable = :refTable"), /// List attributeList = em.createNamedQuery("Concept.findByRefTableNull") .setParameter("conceptName", "student"). setParameter("refTable", null). getResultList(); System.out.println(attributeList.size()); //return 0 

列表大小为0,但我确信它应该有记录。 原因是refTable。 如何在JPA中查询哪个值为null的列?

谢谢。

只需将您的查询更改为

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

我不确定这是否只是一个Spring Data JPAfunction,但我只是在findByFieldName(Type字段)forms的存储库接口中编写一个方法,其中fieldName是我需要进行空检查的列的名称。 然后我使用此方法并传递null作为参数。

我会完全避免查询 – 它几乎否定了持久性抽象的意义。 通过Criteria API创建动态查询,这将确保可移植性并且您将能够在某种程度上切换数据库而不会有太多麻烦