[英]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();
在 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.