2015-12-13 28 views
2
之間JpaRepository區別

我一直在測試了刪除功能爲JpaRepository和有此(簡化)接口:使用deleteBy和排除達

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

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

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

} 

在我的測試中,我找不到排除達之間的任何行爲差異deleteBy方法。所以我的問題是這些之間的區別是什麼?是否有一個最佳實踐理由使用一個在另一個?

注:我使用Hibernate作爲實現。

回答

4

它們是一樣的。選擇哪一個取決於你的個人喜好。請參閱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");