====== Java ====== ==== JPA Query ==== //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.