我一直在测试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);
}
在我的测试中,我无法找到removeBy和deleteBy方法之间的任何行为差异。所以我的问题是这些之间有什么区别?是否有最佳实践理由使用一个而不是另一个?
注意:我使用Hibernate作为实现。
答案 0 :(得分:5)
他们是一样的。选择哪一个取决于您的个人偏好。
有关详细信息,请参阅this。为了证明源代码是相同的,请查看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");