簡體   English   中英

使用帶有spring Boot的Dao設計模式,而不是使用spring data jpa提供的存儲庫設計模式,這是個好主意嗎?

[英]Is it good idea to use the Dao design pattern with spring Boot, instead of using repository design pattern provided by spring data jpa?

實際上,我是Spring Boot的新手,但我已經使用了Spring一段時間了。 使用spring,我曾經通過帶有hibernate / JPA的通用DAO處理我的數據庫(MySQL)。 但是我在spring Boot上發現的所有教程都使用了spring數據jpa,因此配置更容易。

因此,我想知道繼續使用我的舊通用DAO是否是一個好主意,因為它允許我完全控制並根據需要自定義我的數據訪問。 如果是,我該怎么辦? 如果沒有,可能有哪些缺點?

DAO模式與Spring Data支持的存儲庫模式相同。 至少,它應該是。 每個實體都有一個DAO(= Repository)類,它提供查詢或操作該實體的方法。

是否繼續使用我的舊通用DAO是一個好主意,因為它允許我擁有完全控制並根據需要自定義我的數據訪問。

Spring Data足夠靈活,可以完全控制您的查詢。 您有以下選項(從Spring Data引用復制的代碼示例):

  • 使用方法名稱:您可以簡單地命名這樣的存儲庫方法,讓Spring Data自動為您生成查詢:

     List<User> findByEmailAddressAndLastname(String emailAddress, String lastname); 
  • 每個注釋使用自定義查詢:@Query注釋中提供自定義JPAQL查詢

     @Query("select u from User u where u.emailAddress = ?1") User findByEmailAddress(String emailAddress); 
  • 使用命名查詢:在xml文件中定義命名的JPAQL查詢,並在@Query注釋中引用它

     <named-query name="User.findByLastname"> <query>select u from User u where u.lastname = ?1</query> </named-query> @Query(name="User.findbyLastname") List<User> findByLastname(String lastname); 
  • 自己實現一個存儲庫方法:通過自己訪問Hibernate會話(或另一個JPA提供程序)來自己提供Spring Data存儲庫的部分實現。

所以,回答你的問題:是的,使用Spring Data JPA,尤其是新項目! 它為您做了很多工作,您仍然可以根據需要控制查詢(這應該只是復雜查詢所必需的,甚至是我建議使用程序化規范的那些)。

Spring Data JPA將使您作為開發人員的生活更輕松。 DAO模式與存儲庫模式非常相似。 使用Spring Data JPA的優勢在於您將編寫更少的代碼。 Spring Data JPA很像Spring Integration Gateways,你可以在其中定義一個接口,Spring在運行時提供實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM