JPA是java的api, Hibernate是JPA的一個實現(xiàn)。MyBatis、Hibernate都是ORM框架, MyBatis沒有按照J(rèn)PA那套規(guī)范實現(xiàn)。系統(tǒng)的設(shè)計步驟你是從哪里拷貝的吧,我的經(jīng)歷告訴我,實際不是那樣的。
不管用JPA還是Hibernate都要用關(guān)系型數(shù)據(jù)庫,用到關(guān)系型數(shù)據(jù)庫,你就必須了解SQL語法。JPA抽象了api, 為了替代native sql,增加了學(xué)習(xí)成本,降低了性能。復(fù)雜的查詢還是只能用native sql。
只覺得ORM映射用起來很爽,其它功能好煩躁。最反感hibernate的瞬時態(tài)/持久態(tài)/托管態(tài), 寫業(yè)務(wù)代碼,你會操作到數(shù)據(jù)庫。domain一對一,一對多,多對多,延遲加載,級聯(lián)刪除,這些配置也很多。你配置了級聯(lián)刪除,如果某段代碼不想級聯(lián)刪除,sorry,還是用native sql吧。
跨數(shù)據(jù)庫服務(wù)器查詢,jpa,mybatis都做不到
Spring Data JPA 與 MyBatis簡單對比Spring Data JPA 與 MyBatis對比 Spring Data JPA是Spring Data的子模塊。使用Spring Data,使得基于“reposito...