Hirdetés
- Luck Dragon: Asszociációs játék. :)
- talmida: My Art II.
- sziku69: Fűzzük össze a szavakat :)
- Andras-G: #Kószagondolat - eMag tapasztalatok 2026-ban
- gban: Ingyen kellene, de tegnapra
- bambano: Bambanő háza tája
- eBay-es kütyük kis pénzért
- Doky586: SecureBoot kulcsok frissítése (2026 nyara)
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- Geri Bátyó: Agglegénykonyha 13 – Néhány egyszerű, de finom étel
Új hozzászólás Aktív témák
-
nyunyu
félisten
válasz
MrSealRD
#4445
üzenetére
Ha az a cél, hogy enumokat tárolj, akkor egy szótártábla elég, amiben van enum_neve, sorszám, érték.
(Aztán utána lehet hitvitákat folytatni, hogy nullától vagy egytől indexeljünk, lásd java vs sql)Ha viszont Hibernateet akarsz használni DB kezelésre, akkor jól gondold meg, hogy mire vállalkozol, mert az arra tökéletesen alkalmatlan.
Előző projekten alapvetően Oracle DBben fejlesztettünk egy üzleti alkalmazást, afölé lett Javaban írt frontend-backend téve, aztán az eredeti elképzelés az volt, hogy a Hibernate közvetíti az DBben lévő adatokat a Java GUI felé.
Aha, iszonyúan erőforráspazarló, nem gyors, de legalább az összes adatműveletnél lockolja az összes érintett táblát, tábla szinten.
Gyakorlatban totálisan alkalmatlannak bizonyult többfelhasználós célokra, mert folyamatosan homokórázott a rendszer a Hibernate hülyeségei miatt lockolt táblák miatt.
Végül az össze 3 táblából összejoinolok egy táblázatot kérdésre az lett a válasz, hogy a GUI meghív egy tárolt eljárást, ami elvégzi a joint, és az eredményt visszaadja egy kurzorban, aztán annak a tartalmát húzták be a kliens oldalon tovább szűrhető gridbe.
Vagy natív query.A másik nagy kedvencem a késleltetett írás témája.
Felhasználó képernyőn kitölt egy táblázatot, amit egy az egyben a Hibernate ment egy DB táblába.
Elmélet az, hogy a táblázat soráról elvéve a fókuszt azonnal menti a módosult sort a DBbe.
Gyakorlatban? Ha a felhasználó rábökött a Tovább gombra, ami meghívott valami tároltat, ami a frissen töltött táblát használta, akkor az esetek 20%-ában nem volt elmentve az utoljára szerkesztett sor, és a DBben implementált logika emiatt hülyeséget csinált.
Én meg nyomozhattam, hogy mi a francért van jó adat a forrástáblában, az adattranszformáció végén meg rossz. (Hibernate végül mégiscsak elmentette, miután a DB már felhasználta a rossz adatot...)
Végeredmény? Javas kollégákkal veszekedtem pár napot, hogy a DB tárolt hívása előtt MENTSÉK el a táblát.Ez vajon megoldotta a problémát?
A fenéket, méréseim szerint még mindig 3% adathibát okoz, hogy a SaveAndFlush() sem ment azonnal.
Utolsó ötletük a javas kollégáknak a probléma megoldására a Thread.Sleep(500) beiktatása volt a SlaveAndFlush() és a DB tárolt hívás közé...
Mivel az ilyen hókuszpókuszokban nem bízom, inkább beraktam egy összehasonlítást a transzformáció végére, hogy ha inkonzisztenciát lát, azonnal fusson újra az időközben mentett adatokra.Harmadik agybaj meg az volt, hogy a Hibernate konkrétan lebénul attól, ha olyan táblába kell sorokat beszúrnia, ahol a tábla egyedi kulcsát képező szekvencia egyesével lépked. (ami ugye a DB default beállítás...)
Javas kollégák magyaráztak valami marhaságot arról, hogy a Hibernate húszasával becacheli előre a leendő ID értékeket, így a szekvencia lépésközét ennél nagyobbra kell állítani, hogy ne akadjon össze a DBvel egy-egy insertkor.Szóval csak óvatosan a Hibernatetel, mert attól erősen csökken a savassága a DBnek.
-
whYz
őstag
válasz
MrSealRD
#4445
üzenetére
Inkabb itt valaszolok mert ez sql.
Normalizacio, normalizacio, normalizacio. Nem tudom elegszer mondani. Attol, hogy 1 tablaba pakolod az osszes adatod nem lesz gyorsabb a lekerdezes, ha jol van megdesignolva akkor akar rakas joint is pakolhatsz bele, gyors lesz.
Ha mutatsz egy konkret peldat, akar uml diagrammot, akkor tobbet tudunk segiteni.
Új hozzászólás Aktív témák
- Luck Dragon: Asszociációs játék. :)
- Túl nagy alkatrészt vettél? Így kerülheted el a PC-építés legnagyobb hibáját
- Abarth, Alfa Romeo, Fiat, Lancia topik
- Párduc a gépben: teszten az ASUS ExpertBook Ultra
- Kész rémálom lesz Linuxot használni jövőre az USA egyes államaiban
- Mégis meglepi egy új GeForce-szal a rajongókat az NVIDIA?
- Gumi és felni topik
- Befutott a régóta várt, sok P-maggal kitömött, LGA1700-as Core sorozat
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Spórolós topik
- További aktív témák...
- LG 45GR65DC-B 45 / 5120x1440 / 200HZ / VA /
- Chieftec Smart Seriels GPS-500A8 80 Plus minősítésű 500W tápegység
- Apple iPhone 13 - 85% Akku - 128GB - Független - Hibátlan
- HONOR Magic8 Lite 5G 512GB + CHOICE Cubuds - Gyári Bontatlan, 2028-ig garanciális
- HONOR Magic8 Pro 5G 12/512GB (Black) - Új, Kártyafüggetlen, 2029-ig garanciális
- Dell Precision 7550 i7-10850H 64GB 1TB Nvidia RTX3000 6GB 1 év garancia
- Samsung Galaxy Xcover 5 64GB, Kártyafüggetlen, 1 Év Garanciával
- Dell Precision 3561 Core i9 11950H, 16-32GB RAM, 512GB SSD, jó akku, számla, 6 hó gar
- Felsőkategóriás Gamer PC-Számítógép! Csere-Beszámítás! R7 7800X3D / RX 6900XT / 32GB DDR5 / 2TB SSD
- Samsung Galaxy A56 5G 8/256GB fehér használt, karcmentes 6 hónap garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

