2015-01-13 92 views
4

我是新來JPAJPQL休眠Querydsl,現在我看到在我的項目是用來Querydsl查詢和我很奇怪,爲什麼這種做法已被選定。所以你可以肯定爲什麼在我的項目中,但你可以說出爲什麼,在什麼情況下Querydsl是首選。爲什麼我們可以使用簡單的JPQL語句?爲什麼要使用Querydsl?

+0

因爲它的一個該死的網站比詳細的JPA標準更自然一個API? –

回答

7
  • 您可以使用IDE的代碼完成
  • IDE重構工具工作(更多或更少)
  • 類型安全
  • (幾乎)語法安全
  • 編譯器在編譯生成錯誤時間錯誤類型等與休眠抱怨只是在第一次運行
  • 一致性,您可以使用相同的原則來查詢JPA,MongoDB,Collections ...
+0

如果您重命名您的實體類屬性,將在queryDSL查詢中重命名IDE字段? 用戶可以使用QueryDSL進行參數查詢嗎? – Xelian

+1

定義DSL類的查詢必須從實體定義中生成。是的,你可以做參數查詢。 – ikettu

+0

OK,Q類是在實體的基礎上生成的,但是實體屬性用在QeryDSL查詢中,如果你改變實體屬性,QClass將會改變,但是你在舊的DSL查詢中使用的屬性又如何呢?例如,如果您重命名實體類中的屬性字段,它將被更改? IDE是否處理這個改變? – Xelian