[英]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
。 该CrudRepository
有delete
它通过启动方法delete
的字,也没有与启动方法remove
。 我们是否有以remove
开头的方法? 如果是,何时以及如何使用它们。
文档链接: https : //docs.spring.io/spring-data/jpa/docs/2.1.2.RELEASE/reference/html/
它们可以以相同的方式使用。 您可以命名您的方法以remove
或delete
开头。 请参阅PartTree类以获取DELETE模式:
private static final String DELETE_PATTERN = "delete|remove";
生成存储库实现时,Spring Data会检查存储库接口中的任何方法,解析方法名称,并尝试在持久化对象的上下文中了解该方法的用途。 本质上,Spring Data定义了一种微型的特定于领域的语言(DSL),其中持久性详细信息在存储库方法签名中表示。 remove
和delete
没有区别。 您可以使用其中任何一个。 同样的, 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.