【问题标题】:Is CreateSQLQuery in HQL is Database independantHQL 中的 CreateSQLQuery 是否独立于数据库
【发布时间】:2016-12-22 10:50:39
【问题描述】:

谁能帮我理解,HQL 中的 CreateSQLQuery 是独立于数据库的

请在下面找到使用 CreateSQLQuery 的 SQLServer 的本机 SQL 示例,将来如果我需要迁移到 Oracle,除了将字符串连接到数据库之外,我还需要进行任何所需的代码更改。

Native SQL SErver 示例

Query query = session.createSQLQuery(
   "select * from stock s where s.stock_code = :stockCode")
   .addEntity(Stock.class)
   .setParameter("stockCode", "7277");
List result = query.list();

【问题讨论】:

    标签: hibernate hql hibernate-criteria


    【解决方案1】:

    createSQLQuery 创建的本机 SQL 查询依赖于数据库。如果你想拥有一个独立于数据库的代码,你应该使用HQLCriteria queries

    【讨论】:

    • HQL 中的 CreateQuery、CreateCriteria 等所有 API 都是数据库独立的,不明白为什么这个 CreateSQLQuery 单独依赖于数据库
    • CreateSQLQuery 的目的是让您执行标准 hibernate api 不支持的特定于数据库的查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多