【问题标题】:from sql query to hibernate dialect从sql查询到hibernate方言
【发布时间】:2021-08-27 21:46:33
【问题描述】:

我认为这是一个普遍的问题,因为我不是专家。像很多人一样,我已经开始通过经典方式创建我的第一个查询:select something on something where something = something lol。

然后,我发现了带有 Hibernate 和存储库的 Spring Boot。使用 getSomethingBySomething(); 似乎一切都变得更简单了;

但是现在,我想找到一种方法将一些困难的查询转换为 hibernate/jpa 方言。

例如,使用查询构建器(DB Forge 或其他编辑器)之类的工具很容易创建复杂的请求。有没有办法获得相同的结果,但使用 Hibernate 方言而不是使用内部连接等复杂的 SQL 请求?

编辑:

这是一个我想用 Hibernate 方言转换的 sql 查询示例:

@Query(nativeQuery =true, value = "select s.*  FROM doc_usecomp \n" +
            "  INNER JOIN document s \n" +
            "    ON doc_usecomp.doc_id = s.doc_id\n" +
            "  INNER JOIN user_company usercomp \n" +
            "    ON doc_usecomp.usercomp_id = usercomp.usercomp_id\n" +
            "  INNER JOIN company c on usercomp.usercomp_id = c.comp_id \n" +
            "WHERE c.comp_city = 'PARIS'")
    List<Document> findAllDocumentByMCity();

似乎很难从一个城市的所有公司中找到文档,但我有经典的方法来使用 sql 但使用休眠...

希望有解决方案!

【问题讨论】:

    标签: sql spring-boot hibernate query-builder


    【解决方案1】:

    取决于您的 SQL。对 1-4 个条件使用派生查询 getSomethingBySomething() 是一种很好的做法。对于更复杂的查询,您可以使用 JPA Criteria API spring-data-criteria-queries

    【讨论】:

    • 好的,这是第一篇文章中的示例!
    猜你喜欢
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 2016-02-28
    • 2016-04-19
    • 2011-03-02
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多