gpt4 book ai didi

java - 如何在 Spring JPA 中关闭从方法名称创建查询?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:20:32 27 4
gpt4 key购买 nike

在 Spring Data 中是否可以关闭方法名称的查询生成?

给定界面

public interface UserRepository extends Repository<User, Long> {

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

我希望 spring security 产生一个错误,指出从方法名称生成查询已被关闭,请像这样使用显式的 @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 中关闭从方法名称创建查询?

最佳答案

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

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

参见 documentation

用户.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);
}

关于java - 如何在 Spring JPA 中关闭从方法名称创建查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21104434/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com