IntelliJ在JPQL中显示(警告)错误

时间:2016-06-15 08:25:44

标签: java intellij-idea

我写了一个查询并使用JPQl来获取数据

 @SuppressWarnings({"unchecked", "JpaQlInspection"})
    @Override
    public News getCurrentNews() {
        List<News> news = getCurrentSession().createQuery("from News where expiredAt>= :today " +
                "and startedAt<= :today order by createdAt desc , priority").
                setParameter("today", new Date()).list();

        return (news.isEmpty()) ? null : news.get(0);
    }

因此,intelliJ显示错误(或警告),当我按Alt + Enter它提供 添加

  

@SuppressWarnings({“unchecked”,“JpaQlInspection”})

那是什么? 用的是什么? 不管它是不是错了?

1 个答案:

答案 0 :(得分:2)

@SuppressWarnings将告诉IDE停止抱怨某事。对于我的团队,我不允许它,因为它通常表示代码气味。最好弄清楚你收到警告的原因。

在这种情况下,您的JPQL无效。 JPQL需要“SELECT”

SELECT N from News N where N.expiredAt>= :today
and N.startedAt<= :today " +
order by N.createdAt desc, N.priority

它的工作原理是HQL(Hibernate查询语言)支持不使用“SELECT”,因此当你将它从JPQL中删除时它不会抱怨。根据规格虽然您应该拥有它。