【问题标题】:How fix control Query Persistence QL(hql)如何修复控制查询持久性 QL(hql)
【发布时间】:2017-07-22 04:38:42
【问题描述】:

我对 Hibernate 查询有疑问,我的 IDEA 检查错误语法:

此检查控制 Persistence QL 查询是否 错误检查

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

<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)

它可以工作,但它不是正常的代码。如何解决这个问题

【问题讨论】:

    标签: java hibernate hql


    【解决方案1】:

    以下是我解决相同问题的方法: 在 IDEA Preferences (Settings)/Editor/Language Injections 中打开并在语言列表下找到 Session (org.hibernate)。 在语言列下,应选择Hibernate QL。 双击它,将显示操作列表。 选择您需要的操作。

    【讨论】:

      【解决方案2】:

      IDEA 无法识别您使用的是哪个或什么描述符。检查项目结构 -> 方面 -> 休眠。您应该已经在描述符中找到了一个 cfg.xml 文件。如果您正在通过 Spring 会话工厂定义使用包扫描,那么您应该已经找到了一个会话工厂 bean。如果两者都不存在,您可以添加一个。

      【讨论】:

      • 是的,但是在我的构面页面描述符 cfg.xml 屏幕上被选中。还是你的意思是别的? (不,我不使用 Spring)
      猜你喜欢
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      • 1970-01-01
      相关资源
      最近更新 更多