====== Különbségek ====== A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
|
develop:coding_standards:java [2020. 12. 02. 09:18:06] Szabó Gábor létrehozva |
develop:coding_standards:java [2020. 12. 02. 10:31:34] (aktuális) Tóth Gábor JPAQuery és konvertálás |
||
|---|---|---|---|
| Sor 2: | Sor 2: | ||
| ==== JPA Query ==== | ==== JPA Query ==== | ||
| - | Select összeállítás. | + | //QueryDSL// használatánál mindig írjuk ki a teljes select-et és mindig soroljuk fel benne az összes oszlopot (//EntityPath//-okat), amire szükségünk lesz. |
| + | Így végeredményként ''Tuple''-t kapunk, azon pedig a mappelés során kikérhetjük az oszlopok értékeit (//EntityPath// alapján). | ||
| + | |||
| + | Példa: | ||
| + | <code java> | ||
| + | new User(tuple.get(QUser.user.id), tuple.get(QUser.user.name)); | ||
| + | </code> | ||
| + | |||
| + | A //Projections.bean()// használata **nem** javasolt, helyette mappeljük át az eredményt a //fetch// után. | ||
| + | |||
| + | ==== DTO - Entity ==== | ||
| + | Törekedjünk a konverter osztályok használatára. Ez lehet [[https://projectlombok.org/features/experimental/UtilityClass|@UtilityClass]] vagy akár komponens is. Utóbbi akkor javasolt, ha a konvertálás során szükség van más komponensekre/szervizekre. | ||
| + | |||
| + | Konvertálás során setterek helyett **konstruktorokat** használjunk. Ezáltal ha új adattag kerül be és az valahol lemaradna, fordításkor kiderül a hiányosság. | ||