<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    paulwong

    讓spring-data-jpa解放你的DAO

    最近項目用Spring-data-jpa,確實很方便。如果你也曾經(jīng)被重復(fù)無聊的dao代碼雷到的話,就可以考慮將ORM framework換成spring-data-jpa了。 只要繼承CrudRepository或者PagingAndSortingRepository,dao層基本上就只剩下定義接口方法這么一件事情了,連實現(xiàn)都不用寫,因為默認(rèn)實現(xiàn)SimpleJpaRepository已經(jīng)幫你實現(xiàn)了基本的CRUD,是不是很方便?基本的CRUD就全解決了。

    廢話少說,上代碼:

    1@NoRepositoryBean
    2public interface BaseRepository<T, ID extends Serializable> extends CrudRepository<T, ID>{
    3 
    4}
    5 
    6@Transational
    7public interface TestRepository extends BaseRepository<Test,Long>{
    8    Test findByName(String name);
    9}

    只需這么定義,然后testRepository對象就天然擁有CRUD的方法,它會動態(tài)將findByName()的方法定義翻譯成適當(dāng)?shù)腍QL。

    01@Transational
    02public class TestServiceImpl{
    03    @Autowried
    04    private TestRepository testRepository;
    05    public void test(){
    06        testRepository.findOne(id);
    07        testRepository.findAll(ids);
    08        testRepository.delete(id);
    09        testRepository.findByName(name);
    10    }
    11}

    各種翻譯規(guī)則可細(xì)看官方文檔。

    而且還可以用@Query的注解。在方法中寫JPQL查詢語句,還支持nativeQuery,可以使用原生SQL,對報表之類對性能要求比較高的查詢就很給力了。

    如果有時候只是想查詢實體中的某幾個字段,而不是整張表都查詢出來,可以采用以下方法

    1@Transactional
    2public interface TestRepository extends BaseRepository<Test,Long>{
    3 
    4    @Query("select t.id, t.name from Test t")
    5    public List<Object[]> findSimpleTest()
    6}

    然后在調(diào)用該repository的service中遍歷將對應(yīng)的字段轉(zhuǎn)換為相應(yīng)的字段即可。

    具體可以看官方reference

    如果SimpleJpaRepository中的方法不夠用,擴展起來也非常方便,只要在BaseRepository定義自己的借口方法,然后實現(xiàn)類繼承SimpleJpaRepository實現(xiàn)自己的方法,然后將jpa的factory-class替換成自己寫的實現(xiàn)類即可。

    當(dāng)然spring data jpa也有criteria實現(xiàn),叫Specification,有自己的語法,就一個接口方法,多表關(guān)聯(lián)復(fù)雜條件查詢很多時候就需要用到這個,還沒細(xì)研究。再議。

    posted on 2013-05-09 14:16 paulwong 閱讀(5571) 評論(1)  編輯  收藏 所屬分類: SPRING

    Feedback

    # re: 讓spring-data-jpa解放你的DAO 2015-07-02 17:39 zuidaima

    springdata demo教程源代碼下載:http://zuidaima.com/share/kspringdata-p1-s1.htm  回復(fù)  更多評論   


    主站蜘蛛池模板: 国产成人精品高清免费| 亚洲AV永久无码精品一百度影院| 亚洲成色在线影院| 亚洲无砖砖区免费| 久久免费高清视频| 亚洲中文久久精品无码ww16| 国产乱子伦精品免费视频| 超清首页国产亚洲丝袜| 亚洲 日韩经典 中文字幕 | 国产成人无码免费看片软件 | 人碰人碰人成人免费视频| 中文字幕免费在线看线人| AV在线亚洲男人的天堂| 一级一级一片免费高清| 好男人www免费高清视频在线| 亚洲av永久无码精品三区在线4| 三级网站在线免费观看| 911精品国产亚洲日本美国韩国| 国产福利在线观看免费第一福利| 国产精品高清视亚洲精品| 国产免费观看视频| 中国在线观看免费的www| 久久精品国产亚洲AV无码麻豆| 欧美好看的免费电影在线观看| 亚洲AV无码男人的天堂| 成人免费无码大片A毛片抽搐色欲| 亚洲网址在线观看你懂的| 免费成人福利视频| 噜噜噜亚洲色成人网站| 日本大片在线看黄a∨免费| 亚洲中文字幕无码一去台湾| 国产高清免费观看| 国产一级在线免费观看| 亚洲国产精品日韩在线观看| 免费观看国产精品| 亚在线观看免费视频入口| 亚洲精品天堂在线观看| 亚洲熟妇无码另类久久久| 两个人看的www高清免费视频| 亚洲日韩乱码中文无码蜜桃| 国产国产人免费视频成69大陆|