如何修复控件查询持久性QL(hql)

时间:2017-07-22 04:38:42

标签: java hibernate

我遇到Hibernate查询问题,我的IDEA检查错误语法:

  

此检查控制是否存在持久性QL查询   错误检查

enter image description here

但是我在Task中为hibernate.cfg.xml个对象创建了映射:

<session-factory>
    <property name="connection.url">jdbc:postgresql://localhost:5432/todo_list</property>
    <property name="connection.driver_class">org.postgresql.Driver</property>
    <property name="connection.username">postgres</property>
    <property name="connection.password">1</property>
    <property name="dialect">org.hibernate.dialect.PostgreSQL95Dialect</property>

    <mapping resource="ru/pravvich/model/Task.hbm.xml" />
</session-factory>

方面:

enter image description here

如果我欺骗IDE而不是createQuery("select t from Task t"),请创建变量并推入createQuery

String hql = format("select t from Task t where t.id > %s", 0); session.createQuery(hql)

这是有效的,但这不是正常的代码。如何解决这个问题

2 个答案:

答案 0 :(得分:2)

这对我来说是解决相同问题的方法: 在IDEA首选项(Settings)/Editor/Language Injections中打开,然后在语言列表下找到会话(org.hibernate)。 在语言列下,应选择Hibernate QL。 双击它,将显示操作列表。 选择所需的操作。 IDEA Settings

答案 1 :(得分:1)

IDEA无法识别您使用的是哪个或哪些描述符。检查项目结构 - &gt;方面 - &gt;休眠。您应该在Descriptors中找到cfg.xml文件。如果您通过spring会话工厂定义使用包扫描,则应该找到会话工厂bean。如果它们都不存在,您可以添加一个。