使用deleteBy和removeBy之间的JpaRepository区别

Dav*_*idR 4 spring jpa spring-data

我一直在测试删除功能,JpaRepository并有这个(简化的)接口:

@Repository
public interface BrowserInfoDao extends JpaRepository<BrowserInfo, String> {

    @Transactional
    public Integer deleteByClientGuidAndBrowserGuid(String clientGuid, String browserGuid);

    @Transactional
    public Integer removeByClientGuidAndBrowserGuid(String clientGuid, String browserGuid);

}
Run Code Online (Sandbox Code Playgroud)

在我的测试中,我找不到removeBy和deleteBy方法之间的任何行为差异.所以我的问题是这些之间有什么区别?是否有最佳实践理由使用一个而不是另一个?

注意:我使用Hibernate作为实现.

Ken*_*han 7

他们是一样的 .选择哪一个取决于您的个人偏好.

有关详细信息,请参阅此内容.要通过源代码校对它们是相同的,请查看PartTree,它定义了以下正则表达式模式以匹配这些删除查询:

private static final String DELETE_PATTERN = "delete|remove";
private static final Pattern PREFIX_TEMPLATE = Pattern.compile( //
        "^(" + QUERY_PATTERN + "|" + COUNT_PATTERN + "|" + DELETE_PATTERN + ")((\\p{Lu}.*?))??By");
Run Code Online (Sandbox Code Playgroud)