【问题标题】:How to compose query using the @Query annotation and HQL如何使用 @Query 注释和 HQL 编写查询
【发布时间】:2021-12-22 17:36:36
【问题描述】:

有人可以帮助如何在下一行使用 JPA @Query 编写 HQL 查询吗?

“把所有有这个作者并且在 X 年后出版的书都给我”

考虑一个没有关系的简单实体 - 更多关注 JPA @Query 和 HQL 组合:

@Entity

public class Book{
  @Id
  public int id;
  public String title,
  public String authorName;
  public String yearOfPublish;
  .....

}

【问题讨论】:

  • 能否展示您的实体模型
  • 尚未创建...您可以考虑一个简单的日期为字符串
  • 如果没有实体模型,我无法告诉您查询应该是什么样子。
  • @SimonMartinelli 更新了问题
  • 你提到了@Query。你使用 Spring DataJPA 吗?

标签: jpa hql


【解决方案1】:

查询将是:

select b from Book b where b.authorName = :authorName and yearOfPublish > :year

当您使用 Spring Data JPA 时,您甚至不需要编写查询!简单写一个方法:

List<Book> findAllByAuthorNameAndYearOfPublishGreaterThan(String authorName, String yearOfPublish);

这将为您创建查询。

在官方文档中阅读查询方法:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods

【讨论】:

    猜你喜欢
    • 2011-06-15
    • 2018-04-06
    • 2016-01-17
    • 2017-07-27
    • 2020-11-19
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多