繁体   English   中英

Spring Data JPA中的派生方法

[英]Derived methods in spring data jpa

Spring Data JPA文档告诉我们,我们可以具有用于delete功能的派生方法。 然后,文档给出的示例为:

interface UserRepository extends CrudRepository<User, Long> {

   long deleteByLastname(String lastname);

   List<User> removeByLastname(String lastname);
}

我感到困惑的是removeByLastname CrudRepositorydelete它通过启动方法delete的字,也没有与启动方法remove 我们是否有以remove开头的方法? 如果是,何时以及如何使用它们。

文档链接: https : //docs.spring.io/spring-data/jpa/docs/2.1.2.RELEASE/reference/html/

它们可以以相同的方式使用。 您可以命名您的方法以removedelete开头。 请参阅PartTree类以获取DELETE模式:

private static final String DELETE_PATTERN = "delete|remove";

生成存储库实现时,Spring Data会检查存储库接口中的任何方法,解析方法名称,并尝试在持久化对象的上下文中了解该方法的用途。 本质上,Spring Data定义了一种微型的特定于领域的语言(DSL),其中持久性详细信息在存储库方法签名中表示。 removedelete没有区别。 您可以使用其中任何一个。 同样的, find get read

我相信他们正在使用List<User> removeByLastname(String lastname); 因为已经有很long deleteByLastname(String lastname); 并且您不能拥有具有相同名称和参数的函数

在现代版本的Spring Data JPA(> = 1.7.x)中,可以进行删除和删除操作的查询派生

https://www.logicbig.com/tutorials/spring-framework/spring-data/jpa-derived-delete-queries.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM