[英]In which cases does JpaRepository automatically create the query without you having to use @Query annotation
我正在學習 Spring Boot 中的 Udemy 教程。 有一部分@Query
未用於存儲庫界面中的用戶創建方法。 它的工作原理,但我想知道當JpaRepository需要創建查詢的照顧。 在下面的User類中,沒有使用@Table
。
findByEmail(String email)
方法無需任何實現/定義即可工作。 所以,我的印象是,JpaRepository 自動創建了Select from User where email = emailargument
所以這就是我所擁有的
帶有表User
名為reservation
應用程序屬性
spring.datasource.url=jdbc:mysql://localhost:3306/reservation
spring.datasource.username=root
用戶.java
import javax.persistence.Entity;
@Entity
public class User extends AbstractEntity{
private String firstName;
private String lastName;
private String email;
private String password;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
用戶存儲庫.java
import org.springframework.data.jpa.repository.JpaRepository;
import com.project.flightreservation.entities.User;
public interface UserRepository extends JpaRepository<User, Long> {
User findByEmail(String email);
}
JPA 具有以不同方式構造查詢的能力。 您可以使用從 methodName 派生的查詢與謂詞IsStartingWith
、 StartingWith
、 StartsWith
、 IsEndingWith
、 EndingWith
、 EndsWith
、 IsNotContaining
、 NotContaining
、 NotContains
、 IsContaining
、 Containing
、 Contains
這些查詢的相應參數將被清理。
如果你面對其中或者方法名解析器不支持您要使用或方法的名稱會得到不必要的丑關鍵字的情況下,你可以使用@Query
為namedQuery
支持JPQL
或nativeQuery
。
我強烈建議您閱讀此文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.