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

 feify_fei512_478 发布于 2023-02-03 09:51

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

鉴于界面

public interface UserRepository extends Repository {

  List findByEmailAddressAndLastname(String emailAddress, String lastname);
}

我希望spring security能够产生一个错误,说明从方法名称生成查询已被关闭,请使用显式@Query注释,如此.

public interface UserRepository extends Repository {

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

我想关闭自动查询生成,因为我认为更容易阅读查询并知道发生了什么,而不是阅读方法名称并转换为Spring数据将生成的查询,同样在大型团队中有很多开发人员可能还不熟悉Spring数据@Query更具可读性?

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

1 个回答
  • 您可以指定query-lookup-strategyrepositories配置中的标签.

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

    请参阅文档

    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);
    }
    

    2023-02-03 09:56 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有