2014-01-14 33 views
7

在春季數據有可能關閉方法名稱的查詢生成?如何關閉Spring JPA中方法名稱的查詢創建?

鑑於接口

public interface UserRepository extends Repository<User, Long> { 

    List<User> findByEmailAddressAndLastname(String emailAddress, String lastname); 
} 

我想春天的安全性產生錯誤說,從方法名稱生成查詢已關閉,請使用明確@Query註釋,像這樣。

public interface UserRepository extends Repository<User, Long> { 

    @Query("select u from User u where u.emailAddress = ?1 and u.lastname = ?2") 
    List<User> findByEmailAddressAndLastname(String emailAddress, String lastname); 
} 

我想關閉自動查詢生成,因爲我覺得這是更容易閱讀查詢,知道是怎麼回事,而不是讀取的方法名稱和翻譯的是什麼查詢了Spring數據也可以在一個擁有大量開發人員的大團隊中生成一些可能還不熟悉spring數據的開發人員@Query更具可讀性?

如何從Spring JPA中的方法名稱中關閉查詢創建?

回答

5

您可以在配置中的repositories標籤上指定query-lookup-strategy

<repositories query-lookup-strategy="use-declared-query"/> 

documentation

User.java

@Entity 
@NamedQuery(name="User.findByEmailAddressAndLastName", 
    query="select u from User u where u.emailAddress = ?1 and u.lastname = ?2") 
public User{ 


} 

UserRepository.java

public interface UserRepository extends Repository<User, Long> { 

    List<User> findByEmailAddressAndLastname(String emailAddress, String lastname); 
} 
相關問題