簡體   English   中英

使用 JPA 編寫自定義 SQL 查詢

[英]Write custom SQL query using JPA

我有一個 DB 實體的 JPA 存儲庫,如下所示:

@Repository
public interface StudentRepository
    extends  JpaRepository<Student, String>  {
}

Student實體如下:

@Entity
@Table(name = "student")
public class Student implements Serializable {

  private static final long serialVersionUID = 1L;

  @Id
  @GeneratedValue(generator = "custom-uuid")
  @GenericGenerator(name = "custom-uuid",
      strategy = "generator.CustomUUIDGenerator")
  private String id;

  @Column(name = "roll_number")
  private String rollNumber;

  @Column(name = "name")
  private String name;

  @LastModifiedDate
  @Column(name = "last_modified_date")
  @JsonIgnore
  private Instant lastModifiedDate = Instant.now();

現在,我想使用 JPA 編寫以下 SQL 查詢,如下所示:

SELECT id, roll_number from  student where id=<id> order by last_modified_date desc;

作為 JPA/Hibernate 的新手,我不知道如何使用 JPA/Hibernate 來實現這一點。

有人可以在這里幫忙嗎?

你可以這樣寫:

String hql = "SELECT s.id, s.rollNumber FROM Student s WHERE s.id = :id ORDER BY s.lastModifiedDate DESC";
query.setParameter("id", 10);
Query query = session.createQuery(hql);
List results = query.list();

參考: https : //www.tutorialspoint.com/jpa/jpa_jpql.htm

在 Repository 中創建一個新方法

@Repository
public interface StudentRepository extends JpaRepository<Student, String> {

    /**
     * List all student by criterias.
     *
     * @return
     */
    @Query(value = "SELECT id, roll_number from student where id=?1 order by last_modified_date desc;", nativeQuery = true)
    List<Student> listStudent(String id);

}

參考文檔: https : //docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.at-query

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM