我遇到Hibernate查询问题,我的IDEA检查错误语法:
此检查控制是否存在持久性QL查询 错误检查
但是我在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>
方面:
如果我欺骗IDE而不是createQuery("select t from Task t")
,请创建变量并推入createQuery
String hql = format("select t from Task t where t.id > %s", 0);
session.createQuery(hql)
这是有效的,但这不是正常的代码。如何解决这个问题
答案 0 :(得分:2)
这对我来说是解决相同问题的方法:
在IDEA首选项(Settings)/Editor/Language Injections
中打开,然后在语言列表下找到会话(org.hibernate)
。
在语言列下,应选择Hibernate QL
。
双击它,将显示操作列表。
选择所需的操作。
答案 1 :(得分:1)
IDEA无法识别您使用的是哪个或哪些描述符。检查项目结构 - &gt;方面 - &gt;休眠。您应该在Descriptors中找到cfg.xml文件。如果您通过spring会话工厂定义使用包扫描,则应该找到会话工厂bean。如果它们都不存在,您可以添加一个。