Új hozzászólás Aktív témák
-
Orionk
senior tag
válasz
Oppenheimer #8046 üzenetére
köszi
Én egy olyat keresnék, ahol saját magam bármikor végigmehetek az oktató kurzusokon, példákon keresztül.
Ha valaki ismer ilyet és jónak találja, akkor légyszíves oszd meg.köszi
-
Orionk
senior tag
válasz
Oppenheimer #8042 üzenetére
Szia !
Ezek a kurzusok fizetősek?
Úgy látom, hogy csak akkor lehet elkezdeni őket, amikor indul a COURSERA következő tanfolyama ? -
pvt.peter
őstag
válasz
Oppenheimer #7947 üzenetére
ahogy @Aethelstone is írta, a kérdés szempontjából nem releváns
csak az egyszerűség kedvéért írtam Object -et -
Aethelstone
addikt
válasz
Oppenheimer #7947 üzenetére
A kérdés szempontjából van jelentősége?
-
Aethelstone
addikt
válasz
Oppenheimer #7927 üzenetére
Szerintem meg egy olyan terméknek kell lennie az alapnak minden projektnél, ami már bizonyított és kb. 50 update-n már túl van. Nem bíznám a produktív, kritikus rendszerem egy 1.8-as Java-ra. Majd 2 év múlva...amikor már minden disznóság kiderült róla és a rendszerkomponenseimen sem kell minimum 2 főverziót emelni, hogy működjenek vele rendesen...és még sorolhatnám...
-
MrSealRD
veterán
válasz
Oppenheimer #7929 üzenetére
Így már világos, az érvelés érthetővé teszi a dolgot, de a kérdőjelekből ez nem kitalálható... érted...
-
Karma
félisten
válasz
Oppenheimer #7927 üzenetére
Egyébként az Oracle szerint is, ugyanis 2015. április óta nincs supportja, hacsak nem köt külön szerződést az ember a céggel.
A Tomcat 7-et is felesleges archaizálásnak érzem, mondjuk nem is állnék neki kézzel Tomcatet telepíteni, amióta van Spring Boot.
-
Aethelstone
addikt
válasz
Oppenheimer #7924 üzenetére
Én sem értem a kérdőjeleket. 7-es Java jobban tetszett volna ?
Egyébként meg azt írtam, hogy minimum.
-
MrSealRD
veterán
válasz
Oppenheimer #7924 üzenetére
Miért a sok kérdőjel?
-
Sk8erPeter
nagyúr
válasz
Oppenheimer #7895 üzenetére
He?
-
fatal`
titán
válasz
Oppenheimer #7878 üzenetére
Én is erősen gondolkodom rajta, de még béta, nem tudom milyen gyakran változtatgatják az API-t.
-
válasz
Oppenheimer #7880 üzenetére
Van.
-
válasz
Oppenheimer #7878 üzenetére
Probalom attolni a cegben is. A Clojure tul nagy lepes az atlag fejlesztonek sajnos, tehat migralni nem fogunk ra, maximum uj projektekben hasznalni, a Kotlinra van esely.
-
ToMmY_hun
senior tag
válasz
Oppenheimer #7812 üzenetére
Ugyanez volt nálam is, iterálást nem viselte el a Collections.SynchronizedList, hiába tettem a műveleteket synchronized blokkba. Mióta ki kell cserélve a CopyOnWrite-ra, azóta nem volt Exception, igaz én csak az elem berakás/kivételt és az iterálást használom, semmi mást.
Köszi a választ!
-
bambano
titán
válasz
Oppenheimer #7776 üzenetére
vagyis ha a referenciákat adja át, akkor nem mindig érték szerinti átadás van
-
zserrbo
aktív tag
válasz
Oppenheimer #7776 üzenetére
Erre gondoltam én is, de megzavart az angol megfogalmazás
Köszi!
-
Karma
félisten
válasz
Oppenheimer #7773 üzenetére
Természetesen nem. Mivel a connectorok által okozott késleltetés relatíve elég kicsi, az üzleti logikád és DB-d bőven hangsúlyosabb lesz.
-
Karma
félisten
válasz
Oppenheimer #7769 üzenetére
Tempóban biztos (nanoszekundumok
), illetve elég karcsú. Amúgy nincs mögötte igazi szakmai indokom, csak hipsterkedek.
-
Karma
félisten
válasz
Oppenheimer #7760 üzenetére
Használja azt egyáltalán bárki vagy bármi a világban? Most így visszagondolva a LoadUI volt az egyetlen FX alkalmazás, amivel találkoztam.
-
WonderCSabo
félisten
válasz
Oppenheimer #7756 üzenetére
IntelliJ IDEA és társai pl. abban van írva.
-
válasz
Oppenheimer #7752 üzenetére
Arra akartam célozni, legalábbis én úgy látom, hogy egy probléma megoldása közben elég sokat tud az ember tanulni - ilyen módon "képezni" magát.
-
válasz
Oppenheimer #7749 üzenetére
Kb. konstans hulla mód on. Munka közben
-
válasz
Oppenheimer #7747 üzenetére
Utana nem lesz szabadidod. (Ill. ha akkor is kodolsz, akkor valamit rosszul csinalsz.
)
-
válasz
Oppenheimer #7742 üzenetére
A Scala egyszeruen tul nagy nyelv. Otvenfelekepp meg lehet csinalni ugyanazt, lehet a Scalaz-fele funkcionalis agymenestol a pszeudo-Javaig mindent hasznalni. Ez a legnagyobb baja.
-
válasz
Oppenheimer #7739 üzenetére
Ja, de ez fordito kerdese, nem a nyelvbol kovetkezik.
-
válasz
Oppenheimer #7736 üzenetére
Nem lassabb, miert lenne lassabb? Csak a nyelv egy oriasi mellefogas, bar nagyon szerettem az elejen, de azert ez eleg gyorsan kiderul.
-
WonderCSabo
félisten
válasz
Oppenheimer #7733 üzenetére
Hát igen, ez a bonyolult megoldás. De mindegy is, már sokan kérdeztek erre rá, és nem nagyon válaszolt erre az Android fejlesztő csapat. Majd kiderül, mindenesetre egyelőre nincs jel a változásra.
-
WonderCSabo
félisten
válasz
Oppenheimer #7731 üzenetére
Írhatnak, de kétlem, hogy megteszik. Nemrég váltották le a JVM alapú Dalvikot a szintén JVM alapú ART-vel. Ez utóbbi rengeteg idő, mire el fog terjedni, jelenleg kicsi az Android 5 felhasználóbázisa. Ha váltanának egy teljesen új architektúrára, akkor az új appok vagy csak az új telefonokon lesznek elérhetőek, vagy meg kell oldani, hogy a JVM alapú dolgokon is menjen, ami elég bonyolult. Plusz kérdésessé tenné az ART-be vetett meló szükségességét. Ezek kívül a teljes kialakult ökoszisztéma borulna (libek, eszközök).
Mellesleg amennyire tudom, nem terveznek váltani Javáról. -
Karma
félisten
válasz
Oppenheimer #7727 üzenetére
Biztosan meg lehet oldani kínlódva, fájdalmak között vergődve is, de valójában van egyszerű megoldás is, ha bedobod ezt a csomagot [forrás]:
compile 'net.sourceforge.streamsupport:streamsupport:1.3.1'Egy projektben találkoztam vele, igazából pöccre működik.
-
Karma
félisten
válasz
Oppenheimer #7724 üzenetére
Retrolambda esetleg? Nálam benn van a "new project starter kit"-ben, amióta találkoztam vele.
-
válasz
Oppenheimer #7724 üzenetére
Go, esetleg.
-
válasz
Oppenheimer #7721 üzenetére
Ja, bar irtozatosan ronda kb. minden mas nyelvhez kepest, de teny, hogy jobb, mint a semmi.
-
válasz
Oppenheimer #7721 üzenetére
Lambdákra már nagyon szükség volt...
-
Aethelstone
addikt
válasz
Oppenheimer #7713 üzenetére
A CTRL+SPACE segítő sem rossz. Sok gépeléstől (és gondolkodástól) megkíméli az embert
-
válasz
Oppenheimer #7690 üzenetére
Sajnos több sebből vérzik az Eclipse az Ideához képest. A Java Visual Studiója...
Mindenkinek javasolt!
-
M_AND_Ms
veterán
válasz
Oppenheimer #7690 üzenetére
Ja persze. Azért annyira nem, hogy, azt mondjam tényleg őrült vagyok, ha manapság Eclipse-t használok. Ráadásul szabadon.
-
jetarko
csendes tag
válasz
Oppenheimer #7650 üzenetére
jhipster-t nézted? A technology stack elég jó, na meg az a prezentáció is
Én játszottam vele 1-2 órát és elég jónak tűnt, de vannak benne olyan alapkövek amiket még nem írtam meg magamtól ezért még félretettem.
-
Mukorka
addikt
válasz
Oppenheimer #7625 üzenetére
Csak átfutottam egy két osztályt. Egy tipp: ha nincs id amire szűrsz akkor az logikában legyen kiszűrve, nem írunk sql-t olyan feltételre ami mindenképp teljesül. Így gyorsabb is lesz a query 1-2 ezred másodperccel.
-
F1rstK1nq
aktív tag
válasz
Oppenheimer #7629 üzenetére
Jól tetted. Egyébként apró észrevétel, de én úgy tudom Spring Boot-nál ExceptionalBackend/src/main/java/spring-config.xml fájl teljesen fölösleges, nyugodtan törölheted.
-
válasz
Oppenheimer #7625 üzenetére
A dev VM-unk default beallitasa 1G ram, van alatta egy bazi nagy alkalmazas JBoss-ban, Postgres, meg egy szep nagy webapp Tomcat alatt.
-
jetarko
csendes tag
válasz
Oppenheimer #7625 üzenetére
Igen. Nálam fut és még van mellette apache, ts stb és még mindig van hely. De ha nem megy digitalon 2 kattal növelheted.
-
válasz
Oppenheimer #7608 üzenetére
CrowdFlower, Travis, namecheap mind-mind erdekes.
-
válasz
Oppenheimer #7606 üzenetére
GitHub student? Ezt hogy tudok igényelni? +100$?
-
válasz
Oppenheimer #7603 üzenetére
- vadaszhatsz magadnak egy Kimsufi gepet (http://www.kimsufi.com/uk/),
- vagy berelj VPS-t (https://www.vultr.com/, https://www.digitalocean.com/) -
Aethelstone
addikt
válasz
Oppenheimer #7594 üzenetére
Nos, ez azért erős túlzás...
-
floatr
veterán
válasz
Oppenheimer #7535 üzenetére
A Spring Data JPA önmagában kényelmes, de nézd meg a QueryDSL bővítményeit [link]
Ha egy kis időm lenne, valamit még írnék is róla...
-
válasz
Oppenheimer #7503 üzenetére
> Ez alapján annyira random a yield, hogy az is lehet hogy a1 blocked állapotba kerül (hisz másképp nem kerülhetne ütemezésre a1-a10 közül más, mert az a1 foglalja a monitort), de az is lehet, hogy nem változik semmi?
De, persze, sok volt a sor.
> Yielddel nem csak a1 és b1 közötti ütemezést lehetne befolyásolni?
De. Ha a1 running es b1 queued, es a1 yieldel, utana vagy a1, vagy b1 lesz running.
Mondjuk teny, hogy az elozo valasz ota meg 4 sort ittam, szoval ki tudja.
-
válasz
Oppenheimer #7501 üzenetére
A queued az, ami nem var semmilyen monitoron, csak preemptalva lett (vagy csak elinditottak, de meg nem kerult utemezesre).
A yield csak egy jelzes. Nincs definialva, hogy mi fog tortenni, siman lehet, hogy a yield utan ugyanaz a szal fut. Ha a1 nyom egy yield-et, akkor a1-a10 es b1-b10 szalak kozul valamelyik fog utemezesre kerulni. A queued ne tevesszen meg, nincs sorrendiseg ertelmezve a varakozo szalak kozott.
-
PumpkinSeed
addikt
válasz
Oppenheimer #7469 üzenetére
A Movies alatt a Page Size állítása a Most kulcsszóra működik, de gondolom nem így tervezted. Valamiért nekem villog össze vissza, meg ilyenek.Elég furcsa, amúgy egy kis margin-t tehetnél. Most így hirtelen ennyi.
Szerk.: Ja meg ha a show details-re kattintunk akkor felmehetne a detail-sra, mert vártam, hogy majd ott lenyílik valami aztán jöttem rá, hogy feljebb kell menni hozzá.
-
floatr
veterán
válasz
Oppenheimer #7454 üzenetére
Nem csak most, régebben is.
(#7455) Aethelstone én ezt ebben a sorrendben toltam: többféle basic, assembly (z80), pascal, c, assembly (x86), c++, java. Aztán a többi sallang. A C++ okozott sokaknak fejtörést, láttam ahogy vért izzadnak, pedig akkor a template-ek még sehol nem voltak. Egyszerűen elvesztek az absztrakcióban, és nem tudták készség szinten használni. Ahhoz képest a pointerek nélküli C gyerekjáték volt
-
floatr
veterán
válasz
Oppenheimer #7449 üzenetére
Ne mondd ezt. Én GTK alatt maszatoltam pythonnal, és elég gyorsan lehetett látható dolgokat csinálni. Ha valaki nagyon bele akar kapálni a dolgokba, úgyis utána megy.
Praktikussági alapon nekem a JS talán az, ami minden szempontból jó lehetne, bár nyilván mindenkinek más áll jobban kézre.
-
válasz
Oppenheimer #7390 üzenetére
Teljesen irreleváns, hogy a következő projekt nyelve mi. Olyanokat keress, akik már csináltak vele nagyobb projektet. Szerintem. A többféle paradigma megtanulasara nem jo, mert mindenből van benne egy kicsi. Funkcprogra jobb a Clojure (vagy racket vagy akarmi) meg a Haskell.
Tényleg nem muszáj nekem elhinni, de hidd el :d
-
válasz
Oppenheimer #7382 üzenetére
Nézd meg, hogy a nagy rendszereket gyártó cégek, akik Scalaztak, hogy állnak vissza Javára vagy valami másra. A Scala problémája az, hogy őrült bonyolult lett a nyelv. Fun megtanulni, es amikor használod, akkor nagyon produktívnak érzed magad. A probléma ott jön, amikor pár főnél nagyobb csapat kezd el dolgozni, és mindenkinek más rész tetszik a Scalabol.
Nekem bejott a Scala, de amikor elkezdtem nézegetni a Scalaz-t meg társait, akkor ezt láttam. Aztán miután hagytam, kezdtek jönni az iparbol is a hírek, hasonló tapasztalatokról. (sok publikus hír is van, de privátban nem publikusbol is van pár sztorim)A Scala a JVM C++-a. Read this.
Egyébként a Clj számomra nagyobb revelacio volt, de persze ízlés dolga..
-
válasz
Oppenheimer #7378 üzenetére
Biztos, hogy azt akarod? Egyébként szívesen kölcsönadom az Odersky-fele könyvet...
-
floatr
veterán
válasz
Oppenheimer #7369 üzenetére
Nem tudom, de szerintem mindenen végigmennek sorra, amitől érthetővé válik az enterspájz. Azzal a juniorral nekem kifejezetten jó tapasztalataim vannak, aki a csapatomba került.
-
norbert1998
nagyúr
válasz
Oppenheimer #7337 üzenetére
Köszi
-
jetarko
csendes tag
válasz
Oppenheimer #7310 üzenetére
CORS talán?
-
Aethelstone
addikt
válasz
Oppenheimer #7273 üzenetére
A label már durva, de egy breakkel semmi baj. Nyilván célszerűbb valami do while vagy while szerkezetet felépíteni, ha az ember ki akar idő előtt lépni, de szerintem a for loop-ban elkövetett breakkel sincs semmi baj. Ha az ember módjával használja. Persze háromezer if the else és switch szerkezetekben 678 break nem szép....
-
floatr
veterán
válasz
Oppenheimer #7247 üzenetére
lyaly
Itt azért elkövettél pár olyan dolgot, amivel alá lehet vágni egy kitervelt rendszernek. Egyrészt - bár ismétlem magam - ez a generált kód... szerintem jobban jársz, ha egy kicsit veszed a fáradtságot, és megtanulod magad legyártani a kódot a táblák alapján, vagy fordítva.Ha már generáltál valamit adatbázis valami alapján, akkor nagyon észnél kell lenni, hogy mibe túrsz bele. Itt épp azzal babráltál, amivel nem kéne. Mellesleg nekem amiatt gyanús a metódusra akasztott annotációval, mert olyan, mintha félig, vagy egyáltalán nem értené, hogy máshogy akarod elnevezni. Ha már annotálod a cuccot, akkor az átláthatóságot is növeli, ha a mezőkre aggatod őket.
Az@Id mellé még odatenném a @GeneratedValue-t is, mert ezzel a legtöbb adatbázisnál tud auto increment-es típust használni.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #7246 üzenetére
Fogtam az adatbázist és toltam rá alter tablet, átneveztem az oszlopot arra, amit a hibernate annyira használni akart, és már jó. Megoldást nem találtam, mindenesetre nagyon furcsa.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #7244 üzenetére
Egyébként az MpaaRatings-zel ugyan ezt csinálja. Ott is nem létező, id oszlopot keres az adatbázisban. Ezekről tudni kell, hogy én nyomtam alter table-t utólag a táblákon, hogy legyen elsődleges kulcs bennük. Pl:
alter table movietime2.movies2actors add m2aid int primary key auto_increment;Ez azóta is jó egyébként, a movies2actors kapcsolótáblát boldogan tudom használni.
Ha explicit megadom az MpaaRatingsEntity-hez, hogy mi a join table és mik a join columnok, akkor se jó:
@JoinTable(name = "mpaaratings", catalog = "movietime2", schema = "",
joinColumns = @JoinColumn(name = "movieid", referencedColumnName = "movieid", nullable = false),
inverseJoinColumns = @JoinColumn(name = "mpaaratingsId", referencedColumnName = "mpaaratingsId", nullable = false))"Missing column: mpaaratings_id in movietime2.mpaaratings"
-
floatr
veterán
válasz
Oppenheimer #7242 üzenetére
Nekem a hibaüzenetből eleve az gyanús, hogy a táblában más néven keresi az ID-t, mint ahogy deklaráltad volna. A helyedben én az @Id és @Column annotációkat nem a metódusokra tenném.
Az meg a másik, hogy ha csak nem muszáj, én nem babrálnám a hibernate saját elnevezési stratégiáját.
Az org.hibernate.cfg.DefaultComponentSafeNamingStrategy nekem eddig minden problémámat megoldotta -
Mukorka
addikt
válasz
Oppenheimer #7240 üzenetére
Ha már mappeled az entitást akkor minek vannak ott az id-k pl a Movies2ActorsEntity-ban? Ez talán nem okoz problémát bár vicces lehet ha átállítod az entitást és az id meg marad a régi. (Gondolom felülírja az újal de lehet hogy nem).
MoviesEntity -ben hol a characters mappelése?
-
válasz
Oppenheimer #7238 üzenetére
A @ManyToOne (vagy hasonlo) attributum mellett megadod a @JoinColumn(name=genreId)-t is? Mert tippre az a helyzet, hogy a join soran generalja neked a genre_id oszlopnevet.
-
válasz
Oppenheimer #7236 üzenetére
Nem arrol van szo, hogy ezt a tablat joinolod valami masik tablaval?
-
floatr
veterán
válasz
Oppenheimer #7202 üzenetére
A JSON generálásra céloztam. És így van, ha adatokat adsz-veszel, akkor több kommunikációval jár, ami hálózati probléma lehet.
Másik oldalról viszont ott van a fejlesztés és karbantartás. A Java legnagyobb előnye az előtte lévő nyelvekkel/rendszerekkel szemben, hogy gyorsan tudsz eredményt produkálni, pláne ha ilyen irgalmatlan nagy ökoszisztéma jár vele. Ha lábon lövöd magad egy olyan implementációval, amivel időt veszítesz, és rugalmatlanná teszed az alkalmazásodat, és mindezt a hálózati forgalom miatt aggódva, akkor pont a Java előnyeit áldozod be. Néha erre szükség van, amikor nagyon kritikus a teljesítmény egy adott vason, de nem minden áron.
Tegyük fel, hogy a kommunikáció régebbi MVC-szerű alapokra épül. Oldalak jönnek le sokszor feleslegesen, mire a teljes adatkészletet megkapod. Ha már valami ajaxos megoldást is használsz, akkor az overhead sokkal kisebb lesz; akkor bukik ki a leginkább, amikor egy eseményre több kérést kell lezavarnod. A teljesítmény a hálózat teljesítőképességén, és a protokollon is múlik. Ha viszont már websocket/STOMP klienst használsz, akkor megint eltűnik az overheadből egy elég nagy rész, mert a kapcsolat felépítésének a költsége nem terheli a további requesteket; gyakorlatilag eljutsz odáig, mintha egy ESB/JMS integrációs megoldást használnál, aminek a másik végén egy repository jellegű szolgáltatás ül.
Szóval ha engem kérdezel, csak magadat szívatod meg a DTO-kkal.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #7212 üzenetére
Persze értem a csomagolás hátrányát is, de szerintem kisebb, mint a másiknak.
-
Mukorka
addikt
válasz
Oppenheimer #7210 üzenetére
Ez akkor lenne jó ha cserébe az entitásban nem is említenéd meg a kapcsolatokat, máskülönben ugyanúgy duplikálás.
-
Szmeby
tag
válasz
Oppenheimer #7207 üzenetére
Az alapvető probléma az, hogy két helyen kell ugyanazt karbantartani. Amíg csak néhány entitásról van szó, oké, de amikor elkezd növekedni a számuk, és elkezdenek ezek változni is, akkor születnek újabb bogárkák.
Mert például valaki elfelejtette átvezetni a módosítását a másik osztályba, elfelejtődik, és később jönnek a hibák.
Röviden: a duplikált kód rossz.Ez persze nem jelenti azt, ne lehetnél vele boldog, csak érdemes jobb megoldás után kutatni.
Láttam olyan helyet, ahol ennek a menedzselésére bevezették a kódgenerálást. Ott aztán már durva állapotok vannak, ha az ember ilyesmire kényszerül. Egy xtend leíróban legózhatod össze a java forráskódot töredékekből, ezzel többféle forrást is generálhatsz, amit majd a compiler fordít, stbstb. Így xtend-ben kell egyszer megírni a cuccot és az akár 20 féle DTO-t is kigenerál neked. Vagy amennyit akarsz. Tiszta káosz. Cserébe viszont az xtend nehezebben olvasható. Vagy lehet, hogy csak szokni kell. Szerencsére nem sokáig kellett gyönyörködnöm benne.
-
Aethelstone
addikt
válasz
Oppenheimer #7204 üzenetére
Biztos, hogy majd kell. Szerintem a legjo bb ilyesmi tool.
-
Mukorka
addikt
válasz
Oppenheimer #7200 üzenetére
Szerintem arra gondolt hogy nem mappeli fel őket. Tehát a hibernate nem managelné a listát.
DTO konvertálás szerintem is csúfságos.
-
floatr
veterán
válasz
Oppenheimer #7198 üzenetére
Legjobban akkor jöttem ki hasonló dolgokból, amikor az efféle collection-öket letiltottam a serialization-ből, és külön húztam le, amikor szükség volt rá. Ha egyből használnád is, ahogy ez nem éppen a legoptimálisabb, akkor is lehet callback/promise lánccal hívogatni a service-eket. Nekem ettől a DTO-s konvertálgatástól hidegrázásom van...
-
Szmeby
tag
válasz
Oppenheimer #7195 üzenetére
Ha más lehetőség nincs a copy-paste mindig segít.
MovieEntity a JPA-nak, MovieRepresentation a JSON parsernek, és a kettő közé egy finom konverter, ami egyikből másikat csinál. A két eszköz nem fog egymásnak bekavarni, a konverterben meg célzottan meg tudod adni, miből mikor mit csináljon. -
Oppenheimer
nagyúr
válasz
Oppenheimer #7195 üzenetére
Ez így nagyon nem pálya, 1 weboldal betöltéséhez n*100 http üzenetváltás kéne. Tanácstalanná váltam
-
Mukorka
addikt
válasz
Oppenheimer #7193 üzenetére
Nem lehet hogy a fel eager fetchelt objektum listád tagjainál száll el , hisz azokban ugyan úgy van lazy collection ami visszamutat. A json parser meg gondolom mindent felránt ami be van annotálva vagy ami nincs (nemtom melyik). Ez esetben valami ignore-t lehetne rájuk tenni.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #7192 üzenetére
Ez nem fog működni, baja van a Jacksonnak.
Pl filmeknél direkt gettelek minden színészt, írót és producert, mégse hajlandó létrehozni belőle a json objektumot:
Could not write content: failed to lazily initialize a collection of role: com.movietime.model.MoviesEntity.actors, could not initialize proxy - no Session (through reference chain: com.movietime.model.MoviesEntity.
Nem tudom minek akar itt proxyzni, amikor be vannak töltve neki a dolgok, és megfelelően annotálva vannak az entitások is, pl MoviesEntity:
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "movieid")Ez csak az egyik baj, a másik az, ha csak listázni akarok filmeket, akkor fölösleges betölteni minden filmhez minden adatot, elég csak a címet, rendezőt és mondjuk két színész nevét kiírni a listában. A többit akkor kéne csak lekérdezni az adatbázisból, ha rákattint valamelyikre a felhasználó. Ha sikerülne is rávenni a Jacksont, hogy legalább akkor csinálja a dolgát, amikor minden információ megvan hozzá, ez a funkció még akkor se működne.
-
válasz
Oppenheimer #7189 üzenetére
Az alacsonyabb szintu retegek altalaban epphogy kevesbe optimalisak, mert nem all rendelkezesukre az osszes informacio (constraint, etc.), ami a felette levo retegeknek igen. Csak megjegyeztem (a konkret temahoz eleg keveset lovok, en altalaban nagyon alapdolgokra hasznaltam csak Hibernate-et, es utolag nem is biztos, hogy volt ertelme)
-
Szmeby
tag
válasz
Oppenheimer #7186 üzenetére
Kicsit későn lövöm el a hsz-t, feltartottak. Talán ad ötletet.
--------
Szerintem fixen belőtt annotációkkal nem fog menni, mivel nem egyértelmű, hogy melyik fetch módot kell alkalmazni.
Alap, hogy minden lazy. Mivel csak a REST hívás beérkezésekor tudod eldönteni, hogy adott esetben melyik kapcsolatot kell eager fetchelni, nincs mese, runtime ott helyben kell megmondanod neki.Erre sokféle módszer létezik, hogy melyik szép, azt nem tudom.
1. Ha a user a filmre kíváncsi, előkeresed a filmet, majd ráhívsz a getActors() metódusra (ez úgy tudom meglöki a proxy-t és ha sessionben vagy, akkor feltölti az actorokkal is).
2. Talán named query használatával (movie és actor joinnal) ez a bohóckodás egyszerűbbé tehető.
3. Rémlik valami olyasmi, hogy JPA/Hibernate alatt runtime felülbírálható a fetch mód. De itt is áll, hogy minden lazy és szükség esetén adott hívásnál döntöd el, hogy mit nyomatsz eagerrel. Mintha valamiféle fetch profilt kellene ehhez létrehozni (ezzel jól megannotálva az entitást), és az entitás lekérésekor elég csak a profilra hivatkozni.
4. ...
Sajnos nagyon régen Hibernate-eztem, nem biztos, hogy ezek a legjobb megoldások, vagy hogy egyáltalán működnek.
A hibernate doksit nézted már? -
Mukorka
addikt
válasz
Oppenheimer #7187 üzenetére
A transactional csak azt dönti el hogy a bean vagy a container manageli e a tranzakciót.Ettől még a dao hívás végén vége a tr-nek és a sessionnek is. Elvileg nem is lehet egynél több persistentbag-et fetchelni egyszerre. Attól hogy mindenki eager még nem lesz egy select az egész tehát a db kapcsolatot a tákolós megoldás is épp annyira terheli le.
Ahogy én eddig láttam erre rendszerint a külön dao hívások jelentenek megoldást. Mindegyiknél eldöntöd hogy mire van ténylegesen szükséged, alapból meg minden lazy.
-
CJ19
csendes tag
válasz
Oppenheimer #7178 üzenetére
A két érték szerint kéne rendezni. A napnak is növekvőnek kell lennie és a ridenak is.
-
Aethelstone
addikt
válasz
Oppenheimer #7155 üzenetére
Ha már Hibernate, akkor érdemes lenne a Hibernate Session körül is futnod pár kört. Nyilván a használata nem olyan általános, mint ha EntityManager-t injektálsz, de én még olyat nem láttam, hogy egy nagy (vagy kicsi) projektben az ORM réteget egy az egyben lecserélték volna. Ha meg igen, akkor az új ORM réteg megfelelő, natív megoldását használják úgy is.
-
Aethelstone
addikt
válasz
Oppenheimer #7153 üzenetére
Mindig célszerű JTA-t használni. Lehet kézzel is állítgatni a DAO rétegben, de vért lehet hugyozni vele....
Sőt, container managed környezetben bűncselekmény nem JTA-t használni.... -
Oppenheimer
nagyúr
válasz
Oppenheimer #7149 üzenetére
Fejlemény. Na mondom kipróbálok másik application servert, legyen Glassfish 4. Arra nem tudtam deployolni az alkalmazást:
cannot Deploy MovieTimeProject
deploy is failing=Error occurred during deployment: Exception while preparing the app : The persistence-context-ref-name [com.movietime.repositories.ActorRepository/em] in module [MovieTimeProject] resolves to a persistence unit called [MovieTime] which is of type RESOURCE_LOCAL. Only persistence units with transaction type JTA can be used as a container managed entity manager. Please verify your application.. Please see server.log for more details.Akkor mégiscsak JTA típusú tranzakció kell. Fasza.
-
skoda12
aktív tag
válasz
Oppenheimer #7151 üzenetére
Tipikusan akkor használják ezt a kifejezést, amikor valaki olvas valami újat és minden problémát ezzel akar megoldani.
Persze értem, hogy te most csak tanulási célok miatt próbálgatod. -
válasz
Oppenheimer #7147 üzenetére
"Miért ilyen nehéz rávenni a springet és a JPA-t, hogy működjön?"
Azért,mert ezeket arra találták ki, hogy minel tobb konzultanst meg fejlesztőt kelljen a multicegeknek alkalmaznia, az, hogy bizonyos esetben meg lehet veluk oldani a problémát (vagy azt hiszed, hogy meg lehet), csak egy mellékhatás
/troll
"LocalContainerEntityManagerFactoryBean" -- ez szepen összefoglalja
Szoval ha jol latom, egy irtozatosan egyszeru dolgot akarsz megcsinalni -- a problema ezzel az okoszisztemaval az, hogy
- egyszeru dolgokat is bonyolult megcsinalni
- ha az egesz hobelevancot megtanulod sok-sok ido alatt, onnantol meg van egy bazi nagy kalapacsod, es igazabol ugy tudsz normalis penzt keresni, ha mindent szognek nezel. -
Oppenheimer
nagyúr
válasz
Oppenheimer #7147 üzenetére
Az a baj, hogy hiába gúglizok, csak olyan találatok vannak, amikor JPQL-ben a tábla nevét használták az entitás helyett, de nálam nem így van. Próbáltam azt is, hogy a
<exclude-unlisted-classes>false</exclude-unlisted-classes>
sort kivettem a persistence.xml-ből és explicit felsoroltam az osztályokat, ugyan ez az error volt. -
Oppenheimer
nagyúr
-
floatr
veterán
válasz
Oppenheimer #7113 üzenetére
Találtam neked egy persistence unitos összetettebb példát: [link]
-
jetarko
csendes tag
válasz
Oppenheimer #7109 üzenetére
Szerintem az xml-ben és java kódban megadottnak egyeznie kell, azaz ha ott emf, akkor a java-ban is írd át emf-re.
A package bejárás meg azért nem megy ha jól látom, mert "com.movietime.controller" van megadva, de a dao ez mellett van és nem benne, ezért vagy megadod, hogy "com.movietime" és innentől bejárja vagy, megadod külön a dao és service package-t is. -
Lortech
addikt
válasz
Oppenheimer #7110 üzenetére
Datasource definícióval nem jó valamiű, de mindenre van egy SO link: [link]
-
Oppenheimer
nagyúr
válasz
Oppenheimer #7109 üzenetére
Rossz sort másoltam ki. Ez az error.
-
floatr
veterán
válasz
Oppenheimer #7102 üzenetére
[link] Egy válasz a sok közül
Amúgy a load-time weaving nem fog működni tomcat alatt. Egy kollégám hónapokig kesergett miatta. JUnit tesztben ment tomcat 8 alatt nem. Ha jól emlékszem 7-essel még ment a dolog.
De ha nem akarsz métereseket szívni a persistence.xml és tsai konfigurációjával, akkor miért nem csak springben rakod össze a datasource + JPA EMF csomagot?
<!-- setting up JPA EMF -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:dataSource-ref="dataSource"
p:packagesToScan="com.movietime.entities" >
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
<property name="jpaProperties">
<props>
...
</props>
</property>
</bean>
<!-- Transaction Manager -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"
p:entityManagerFactory-ref="entityManagerFactory" />
<tx:annotation-driven />
<bean id="persistenceExceptionTranslationPostProcessor"
class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" /> -
Lortech
addikt
válasz
Oppenheimer #7102 üzenetére
Szerintem az van, amit a hibaüzenet is mond, hogy ha JTA -t akarsz használni, akkor a persistence-unit-on belül kell egy <jta-data-source>$datasource</jta-data-source>
Ha meg nem JTA, akkor a transaction-type-ot át kell állítani RESOURCE_LOCAL-ra. -
jetarko
csendes tag
válasz
Oppenheimer #7102 üzenetére
Tipp:
Error creating bean with name 'emf' defined in ServletContext resource [/WEB-INF/spring-servlet.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException:
A spring xml-ben emf-t adtál meg, a repoban meg em-re hivatkozol.
Az xml fájlokban miért van annyi kommentezés?<!-- Use @Component annotations for bean definitions -->
<context:component-scan base-package="com.movietime.controller" />Itt szerintem fel kell sorolni azokat a packageket amikben @componentekre hivatkozol. Pl dao(repo) service csomagok is.
-
WonderCSabo
félisten
válasz
Oppenheimer #6783 üzenetére
Izé, a sima LIKE feltétel nem pont erre való JPQL-ben? Pl. city LIKE '%bud%'.
Szerk.: Ha csak elejére illeszkedés kell: city LIKE 'bud%'
-
Cathfaern
nagyúr
válasz
Oppenheimer #6789 üzenetére
Szerintem lehet, főleg hogy egy ekkora oldalnál jó eséllyel nagyon masszív cachelést alkalmaznak. Gyakorlatilag mire te beírsz bármit, az már jó eséllyel ott figyel a cacheben a látogatószámot figyelembe véve.
-
Cathfaern
nagyúr
válasz
Oppenheimer #6784 üzenetére
"Hogyan csinálják pl IMDB-nél azt, hogy beírom egy film címének egy részét, és kvázi azonnal mutatja azt a szövegrészletet tartalmazó filmcímek listáját? IMDB-t használnak (In Memory Database)?"
Ahogy gépelsz, javascripttel mindig indítanak egy kérést. Ha chrome-ban felnyitsz f12-vel console-t, akkor ahogy gépelsz, látod is. Pl. a "viki" szót beírva erre az URL-re indítja a kéréseket: http://sg.media-imdb.com/suggests/v/viki.json . Ahogy nézem a suggests mögé mindig bekerül az első betű amit beírtál, utána /, majd a keresett szó +.json Ha megnyitod a fenti linket, látni azt is, hogy mit ad vissza, és simán abból építi fel a lenyíló listátSzerk: ja vagy az a kérdés, hogy hogy lesz mindez ilyen gyors? Tippre nem véletlen, hogy első betű alapján külön szedik.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #6784 üzenetére
erre már meg magam is tudom a megoldást. köszönöm a lehetőséget, itt mindig megvilágosodok
-
Oppenheimer
nagyúr
válasz
Oppenheimer #6783 üzenetére
"Hogyan csinálják pl IMDB-nél azt, hogy beírom egy film címének egy részét, és kvázi azonnal mutatja azt a szövegrészletet tartalmazó filmcímek listáját? IMDB-t használnak (In Memory Database)?"
Most direkt kipróbáltam. Trükkösek, ez csak akkor működik, ha a filmcím első két szavából kezdem el valamelyiket gépelni.
Módosítom a kérdésem: JPA-val meg lehet oldani, hogy egy attribútum értékének csak az elejének egy része ismert, és a szelekció azokat a rekordokat adja vissza, amik az adott attribútumban így kezdődnek? Az is elég, segítség lenne, ha valaki megmondaná milyen kulcsszavakkal érdemes ilyen probléma esetén keresni. Ilyenekkel próbáltam, hogy:
- jpa select partial attribute
- jpa select by partially known attributede nem találtam semmi használhatót.
-
Aethelstone
addikt
válasz
Oppenheimer #6489 üzenetére
Csatlakozom. Ha ugyanazzal az energiával lehet jót csinálni, akkor miért csinálnánk rosszat?
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Azonnali fáradt gőzös kérdések órája
- Mikrotik routerek
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Gitáros topic
- Autós topik
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- Android szakmai topik
- Kínai és egyéb olcsó órák topikja
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Path of Exile (ARPG)
- További aktív témák...
- BESZÁMÍTÁS! MSI X470 R7 5800X 32GB DDR4 512GB SSD ROG STRIX RTX 2080 Super 8GB Rampage SHIVA 650W
- Lenovo LEGION Pro 5 / Pro 7, Lenovo Yoga Pro gépek (RTX 4060 / 4070 / 4080 / 4090)
- ALIENWARE Area-51 R6 Threadripper Edition 1920X
- AKCIÓ! Gigabyte H610M i5 12400F 16GB DDR4 512GB SSD RX 6700XT 12GB Zalman S2 TG Seasonic 650W
- BESZÁMÍTÁS! GIGABYTE H77-DS3H H77 chipset alaplap garanciával hibátlan működéssel
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest