Hirdetés

2024. május 29., szerda

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Java programozás (kiemelt téma)

Hozzászólások

(#11251) togvau


togvau
senior tag

Vindózon van egy openjdk 14, csak úgy kicsomagolva, hozzáadva a path-hoz, meg java_home beállítva.

Tennék fel mellé egy 8-as JDK-t is, de nem tudok. Az openjdk elirányít az orákle oldalára, ha 8-ast keresek, ahol csak telepíthető van, ami valahogy kisajátít minden javas alkalmazást, és az futtatja, de hogy hogy, azt nem értem, mert a path-hoz, és javahome-hoz nem ad semmit.

Linuxon meg csak simán az apt-al rakhatok fel 8-as, és legújabb javat is.

Hogy lehet megoldani, hogy az elsődleges a 14-es openjdk legyen, de adott projekthez, aminek a pom-jában 1.8 van, ahhoz a 8-ast használja? És hogy telepítem? Tényleg 7zippel kell kihackelni az oracle telepítőből?

hitler, sztálin, micro usb

(#11252) mobal válasza togvau (#11251) üzenetére


mobal
MODERÁTOR

Én már lassan két éve nem szórakozom csak ezt használom: [link]

"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."

(#11253) togvau válasza mobal (#11252) üzenetére


togvau
senior tag

felraktam. Erre a fos maven csesződött el.

.7\vaadin-sass-compiler-0.9.13.jar (The system cannot find the file specified) ilyen hibák.

update project, stb már megvolt.

ha letörlöm, akkor megint jó

[ Szerkesztve ]

hitler, sztálin, micro usb

(#11254) floatr válasza togvau (#11253) üzenetére


floatr
veterán

Egy ideje ilyen esetekre VS Code konténert használok. Egy docker image-be összeállítja a fejlesztőkörnyezetet, amit utána tovább tudsz konfigolni.

(#11255) togvau


togvau
senior tag

spring nem tud véletlenül olyasmit, hogy az adatokat módosító, vagy létrehozó queryket követni lehet? Eseménynaplóhoz kellene, ahol a módosításokat kell logolni

hitler, sztálin, micro usb

(#11256) Superhun válasza togvau (#11255) üzenetére


Superhun
addikt

[link]

[ Szerkesztve ]

(#11257) togvau válasza Superhun (#11256) üzenetére


togvau
senior tag

köszi, ez király dolog! Éreztem, hogy van valami ilyesmi :)

dockeresíteném (próbából) az egyik sima springboot teszt cuccomat, amiben embedded H2 van.
De ahogy egy régebbi node-os probálkozásomnál is, itt is egy soros semmit mondó hibaüzenettel száll el a run, de a build az rendben van mindig.
Error: Invalid or corrupt jarfile /app.jar

Ez a dockerfile
FROM openjdk:14-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} /target/wishlist-1.0-SNAPSHOT.jar 
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

Le van buildelve a jar, ott van a helyén a targetban.
Még is. Amúgy ha arg-ot adnék meg azt, hol adjam meg? A formátumára vagyok kíváncsi.
Amúgy egy vindózos gépen fut, de lásd a backslashek per jellé vannak alakítva.

[ Szerkesztve ]

hitler, sztálin, micro usb

(#11258) mobal válasza togvau (#11257) üzenetére


mobal
MODERÁTOR

Ez Spring?

"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."

(#11259) disy68 válasza togvau (#11257) üzenetére


disy68
aktív tag

A docker image-et hogyan hozod létre? Használsz-e maven/gradle plugint? Rákerestél-e a hibaüzenetre? Nézted-e hogyan kell argumentumot használni a dokumentációban?

“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude

(#11260) togvau válasza disy68 (#11259) üzenetére


togvau
senior tag

docker build-el. Valami maven wrappert írt, hogy be kell rakni a projektbe, az benn is van.
Igen rákerestem, a java írja, hogy nem jó a jar. Pedig a hivatkozott jar még eredetiben simán indul, ugyan az alatt a 14-es jdk alatt.
Megnéztem az argumentumot, de nem találja, mivel a docker linux fájlrendszerében keresi, nem az igaziban.

hitler, sztálin, micro usb

(#11261) disy68 válasza togvau (#11260) üzenetére


disy68
aktív tag

"Valami maven wrappert írt, hogy be kell rakni a projektbe, az benn is van."

docker-maven-plugin? hogy néz ki hozzá a konfig a pom.xml-ben?

"Igen rákerestem, a java írja, hogy nem jó a jar."

ha rákeresel a hibaüzenetre és hozzácsapod, hogy docker, akkor láthatod, hogy másoknak is volt ilyen problémájuk, a legtöbb esetben az argumentum átadással volt a gond, ami miatt a JAR_FILE változó értéke üres, így a copy nem fut le jól

"Megnéztem az argumentumot, de nem találja, mivel a docker linux fájlrendszerében keresi, nem az igaziban."

wut?

“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude

(#11262) togvau válasza disy68 (#11261) üzenetére


togvau
senior tag

ja itt is az volt, csak erre nem figyelmeztet. Most elindult, csak elérni nem tudom a konténeren kívülről, a 172.17.0.2-t próbálva sem, -p -vel sem. Na mindegy, nem szenvedek vele

hitler, sztálin, micro usb

(#11263) togvau


togvau
senior tag

Hogy lehet egy springboot maven projektet jar-ba exportálni? A lehető legegyszerűbben kéne, amit elindítok eclipse-ben van intellij-ben, azt egy futtatható jar-ba

[ Szerkesztve ]

hitler, sztálin, micro usb

(#11264) mobal válasza togvau (#11263) üzenetére


mobal
MODERÁTOR

fatJar-t akarsz asszemblálni ami standalone fut?

"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."

(#11265) togvau válasza mobal (#11264) üzenetére


togvau
senior tag

ja. Az se ártana, ha a vaadinos css-t meg hasonlókat nem hagyná ki

[ Szerkesztve ]

hitler, sztálin, micro usb

(#11266) estro


estro
csendes tag

Sziasztok, egy kérdésem lenne hogy szerintetek melyik lenne a jobb megoldás.

A probléma hogy a JPA a OneToMany esetén duplikálva adja vissza a child entityket.

Itt egy stackoverflow kérdés róla:
https://stackoverflow.com/questions/1995080/hibernate-criteria-returns-children-multiple-times-with-fetchtype-eager

Nekem fontos lenne eager lekérdezés és hogy sorrend tartó legyen az adat.
1. JPA interfacet használok, szóval csak ezért érdemes lenne egy DAO-t létrehozni és hibernateval Criteria-t írni erre az egy lekérdezésre?
2. vagy szűrjem ki a duplikációkat a service layerben?
3. esetleg lehet erre írni valami queryt a JPA @Query annotációval?

[ Szerkesztve ]

(#11267) floatr válasza togvau (#11265) üzenetére


floatr
veterán

Pl így [link]
Én mondjuk a gradle-t használom, annak van egy bootJar targetje

(#11268) estro válasza estro (#11266) üzenetére


estro
csendes tag

amúgy érthető mit szeretnék kérdezni, vagy még senki nem találkozott ilyennel? :D

(#11269) floatr válasza estro (#11268) üzenetére


floatr
veterán

Ha egy entity-ben kettő v több eager OneToMany collection van, akkor nem egyszerű megoldani kézzel sem a dolgot. Az egyik módja a szűrésnek a Set használata, de lehet custom query-t és projekciót is használni.

Vagy nem eager, és kézzel inicializálod.

(#11270) togvau válasza floatr (#11267) üzenetére


togvau
senior tag

közben meglett, picit máshogy: mvn package
2 kérdés:
-Kellene valami tool amivel teljes java projekteket lehet összehasonlítani, java fájlonként, tartalomra. Total commander synchronize dirs volt eddig, de most nem... minden java fájlt különbözőnek érzékel, és különbözik is a mérete byte-ra, de a tartalom nagyrésze egy az egyben ugyan az. By content checkbox nem segít, karakterkódolás pedig azonos, nincs fájl végi sortörés különbség sem :F

-Van olyan tool amivel kigyűjhetőek, akár a pontosan egyező metódusok is? Mert az a szerencsétlen aki csinálta, még metóduson belül is 10 soros kódokat ismételget, azonos copy-paste metódusokból is sok van.
Persze az is hasznos lenne, ha a feltűnően hasonló kódrészletekre is figyelmeztetne, hogy azt egységesíteni lehet.

hitler, sztálin, micro usb

(#11271) M_AND_Ms válasza togvau (#11270) üzenetére


M_AND_Ms
addikt

Például: Winmerge

[ Szerkesztve ]

Aki tejszínhabot szeretne, az inkább verje ki a fejéből!

(#11272) togvau válasza M_AND_Ms (#11271) üzenetére


togvau
senior tag

projekt összehasonlításra a Meld-et találtam közbe, annak már nem voltak hamis találatai.

Most a nyomorék projektben, bigdecimmal szenvedek. Vaadinos felület, a numberfieldnél ,-re van állítva a decimal separator, és a ,-t is veszi tizedesvesszőnek ha írok be valamit.
De fordított iránynál, amikor a mezőt állítja be a kód, .-ot rak tizedesvesszőnek.
pl így állítja be: mennyisegMe3.setValue(me3.doubleValue());
Pont jelenik meg. Próbálkoztam locale-t is beállítani, semmi hatás.

hitler, sztálin, micro usb

(#11273) togvau


togvau
senior tag

Van egy fieldem amiben az osztályom amiben generikusan másik osztály van, az abstract osztályban van deklarálva kell ennek a generikusban lévő osztály ősének metódusa, de a leszármazott osztályban már nem elég az őse, kellenek a fejlettebb metódusok is, de castolni nem tudom, nem engedi.
Pl: nem optional az osztály, csak azzal tudom szemléltetni abstract class: protected Optional<AbstractOsztály> valami=new Optional<AbstractOsztály>();
Leszármazott osztályban is használnám ezt Optional<LeszármazottAbstractOsztály> valami2= (Optional<LeszármazottAbstractOsztály) valami;

De nem engedi. Mi a megoldás ha egy ták projektnél, egy abstractban view osztályban deklarált abstract osztályú field, subclassban kiterjesztett metódusait használhassam a a leszármazott view osztályban, felüldefiniálás nélkül?

hitler, sztálin, micro usb

(#11274) Szmeby válasza togvau (#11273) üzenetére


Szmeby
tag

Kicsomagolod, castolod a belét, becsomagolod. Mondjuk, amit az Optional.map() csinál, ha már az Optional a példa.

disclaimer: Remélem azt nem kell mondanom, hogy ha a kalapács nyelével akarod beverni a szöget, akkor ne csodálkozz, ha körülményes. Ha mondanom kell, akkor egy java software design témájú könyv elolvasása szerintem hasznos lenne. Valami a nagyoktól: Josh Bloch, Bob Martin, Kent Beck, Fowler, ...

Ja igen, zavarbaejtően sok állítmány és szleng került a mondataidba, nem vagyok benne biztos, hogy jól értem a problémát, de van egy olyan érzésem, hogy máshogyan illene struktúrálni azt a kódot.

(#11275) floatr válasza togvau (#11273) üzenetére


floatr
veterán

A generics kezelésnek kicsit nézzél utána, mert ez nem ilyen egyszerű. És tényleg mindenki jobban jár, ha egy kicsit érthetőbben fogalmazol, de ezt már mondtam korábban is.

(#11276) javamonk


javamonk
újonc

Java EE tanulásához, (dinamikus weboldal készítéséhez) melyik tárhelyszolgáltatót válasszam?
Nem otthoni környezeten szeretnék gyakorolni, hanem "egy kicsit élesebb" környezetben. Továbbá jól jöhet, ha valakinek/cégnek majd meg is akarom mutatni, amit készítek.

(#11277) floatr válasza javamonk (#11276) üzenetére


floatr
veterán

Gyakorlatilag bármelyik cloud providernek van ingyenes szolgáltatása.

(#11278) togvau válasza Szmeby (#11274) üzenetére


togvau
senior tag

nem tűnt fel, hogy egy idióta által fejlesztett rakás ürüléket próbálok vállalható állapotba hozni? Úgyhogy a design BS-el nem tudok mit kezdeni.

hitler, sztálin, micro usb

(#11279) Drizzt válasza javamonk (#11276) üzenetére


Drizzt
nagyúr

Miert eppen Java EE?

I am having fun staying poor.

(#11280) javamonk válasza Drizzt (#11279) üzenetére


javamonk
újonc

Dinamikus weboldal készítéséhez, de mivel kezdő vagyok, az is egy kérdés persze, hogy egyáltalán érdemes-e tanulni a Java EE-t.
Még nem láttam elég videót, nem olvastam elég cikket, hogy felmérjem, mi a legnaprakészebb tudás, amit érdemes megszerezni, ha az ember a Java nyelvet kezdte el tanulni, majd weboldalakat szeretne ksézíteni.

(#11281) Drizzt válasza javamonk (#11280) üzenetére


Drizzt
nagyúr

Spring/Spring boot erzesre joval fenyesebb jelen/jovo elott all. Meg weboldalakat kesziteni azert nagyon sokfele modon lehet, de szerintem erdemes a weboldalt es a serveroldalt teljesen fuggetlenul fejleszteni. De attol is fugg, hogy mit akarsz az egeszbol kihozni. Nagyon elterjedt a single-page webapp valamelyik js frameworkben + Spring boot server alkalmazas.
Java ee-ben szerintem a legnagyobb baj az uzemeltetesevel, meg a java EE app serverekkel van. Bar letezik oda is uber/fat jar megoldas.

I am having fun staying poor.

(#11282) disy68 válasza javamonk (#11280) üzenetére


disy68
aktív tag

Nem feltétlen ez lenne az első, amit javasolnék bárkinek is. Vannak hasznos részei, amikre alapulnak implementációk, amikkel szinte biztos találkozik az ember, ha ezekre a funkcionalitásokra lesz szükségük (xml/json feldolgozás, persistence, servlet). Annyit mindenképpen érdemes tudni, hogy mi ez és milyen ajánlásai vannak mely témakörökben.

Ennek ellenére én inkább javasolnám a Spring keretrendszert kezdésnek, ami egy elég naprakész és sokak által használt megoldás, akár csak web backend (és frontend), middleware vagy akár service és cli alkalmazásokhoz. Rengeteg elérhető anyaggal és nagy közösséggel mögötte.

Előtte - ha még nem foglalkoztál volna vele - a git használatát érdemes elsajátítani és alkalmazni. Valamint a java ökoszisztémához valamilyen dependency manegement eszköz használatát (maven/gradle) se árt ismerni. Utóbbiakkal a Spring kapcsán fogsz találkozni mindenképpen.

[ Szerkesztve ]

“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude

(#11283) bggmnd


bggmnd
kezdő

Sziasztok!

Úgy döntöttem, hogy elkezdeném a szakdolgozatomat megírni.
A tervezésben szeretném kérni a segítségeteket.

Téma nagy vonalakban:

Egy windows operációs rendszeren futtatható alkalmazás.
A program a felhasználók felé példa edzésprogramokat képes megjeleníteni, amiben a gyakorlatok pontos leírása szerepelne, illetve pontos ismétlésszámok, stb....
Ezen felül táplálkozással kapcsolatos információkat is megjelenítenék.
Lehetőséget szeretnék biztosítani a felhasználó által elfogyasztott ételek kalóriájának a rögzítésére. Ez úgy lenne egy szép megoldás véleményem szerint, ha lenne egy adatbázis, amibe berögzítésre kerülnének az ételek kalóriaszámai és ezt a későbbiekben a felhasználó saját magának tudná bővíteni.(előzetesen néhány étel kalóriaszámát rögzíteném, tehát nem üres adatbázissal indulna, vagy ha van ötletetek arra, hogy már meglévő adatbázisból honnan tudnék átemelni kalória értékeket, akkor azt is megpróbálnám).
Szeretnék egy edzésnapló részt ahová rögzíteni lehetne az edzés során végrehajtott gyakorlatok során használt súlyok nagyságát illetve az ismétlések számát.
Szeretnék majd grafikonokat is megjeleníteni, de egyelőre ezekkel foglalkoznék amit leírtam. Ti hogyan indulnátok el? Milyen adatbázist használnátok? Mit tanácsoltok?

Köszönöm :R

(#11284) Taoharcos válasza bggmnd (#11283) üzenetére


Taoharcos
aktív tag

Adatbázisnak H2, egyszerűen kezelhető, egy szakdolgozathoz bőven elég. Spring Boot keretrendszert lenne még érdemes használnod, nagyon sok dolgot könnyedén meg lehet vele oldani, és jobban lehet az alkalmazás üzleti logikájára koncentrálni.

(#11285) Szmeby válasza bggmnd (#11283) üzenetére


Szmeby
tag

Szerintem is egy spring boot H2 db-vel tökéletesen megfelel a célnak.

Ha valóban a desktop alkalmazás a cél, és csupán a szakdolgozat keretein belül kívánsz maradni, akkor a javafx frontendnél én nem mennék messzebb. (Persze ha fontos az, hogy weben, böngészőből, akár mobilról is elérhető legyen, akkor inkább egy js frameworkot állítanék frontendbe, ami persze újabb komplexitást és eddig számításba nem vett plusz munkát hozna be.) A javafx tud formot, táblázatot, grafikont, egyszerű desktop apphoz megfelelő szerintem.

Ami a kalóriaadatbázist illeti, sose kerestem ilyesmit. Amit más területen tapasztaltam, hogy az amcsik előszeretettel biztosítanak apit, vagy nyitják meg az adabázisukat a közönség számára (akár letölthető csv, akár rest api formájában), főleg a governmental weboldalak. Ez a legegyszerűbb.
Magyar weboldalaknál ez egyáltalán nem jellemző sajnos, ott többnyire marad a webscraping, ha nagy a szükség (és persze a weboldal tulajdonosa a robots.txt-ben ezt megengedi).
Ha kevés adattal indítasz, én lehet inkább feltölteném kézzel, minthogy mások adatbázisait próbáljam számomra emészthető formára hozni. Főleg ha már van mondjuk egy excel táblád (feltételezem van, ha ezt választottad témának), abból nagyon könnyű csv-t kreálni, elé tenni az insert into-t, és hadd szóljon. :)

(#11286) floatr válasza bggmnd (#11283) üzenetére


floatr
veterán

Én mongodb-t használnék spring data és boot mellett, mivel dokumentum-jellegű az adat. Egy REST backend mellé könnyen lehet hegeszteni egy androidos alkalmazást is. Docker és Amazon EC2 is szóba jöhet.

(#11287) togvau


togvau
senior tag

Szeretnék egy két entity dolgot logolni, így beraktam az ős abstract entity-be, hogy

@Transient
protected final Logger logger = LoggerFactory.getLogger(this.getClass());

aztán random leszármazott entity-knél: java.lang.IllegalArgumentException: Could not resolve property name logger from Property set for bean

Miért? Miért random, és hogy lehetne megcsinálni?

[ Szerkesztve ]

hitler, sztálin, micro usb

(#11288) floatr válasza togvau (#11287) üzenetére


floatr
veterán

Most ezt így nehezemre esik megszakérteni, de minden osztálynak saját loggere van. Ha nem akarod mindig beírni azt az 1-2 sort, akkor ott van a lombok logger annotációja

(#11289) togvau válasza floatr (#11288) üzenetére


togvau
senior tag

1 sor, vagy 1 annotáció, édesmindegy. Azt nem értem, miért viselkedik így véletlenszerűen.
És hogy miért száll el olyan entitynél is amiben nincs log, csak az ősosztályában, ahol deklarálva van a logger.

[ Szerkesztve ]

hitler, sztálin, micro usb

(#11290) togvau


togvau
senior tag

javax.persistence.schema-generation.scripts.action-nél nincs olyan, hogy update, pedig ha nem scriptet kell generálnia, olyan szép alter table-ket tud csinálni.
Nem lehet kicsikarni belőle, hogy scriptbe rakjon update ddl-t? Nem akarok kézzel alter tablezni...

hitler, sztálin, micro usb

(#11291) floatr válasza togvau (#11290) üzenetére


floatr
veterán

Ez generál a stdout-ra scriptet, amit utána tudsz használni

spring:
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
format_sql: true

logging:
level:
org.hibernate:
SQL: DEBUG
type.descriptor.sql.BasicBinder: TRACE

[ Szerkesztve ]

(#11292) javamonk


javamonk
újonc

Van egy java ee (jsp & servlet + mysql) projektem, amiben szeretném megvalósítani az alábbit:
Az egyik jsp oldalon az egyik gomb megnyomására egy egyszerű animáció indul el:
egy alakzat vízszintesen mozog "a" pontból "b" pontba.
A mozgó alakzat sebességét a mysql adatbázis egy mezőjének értéke határozná meg. Tehát pl ha az adott mezőben 1 van, akkor az alakzat lassabban éri el a "b" pontot, ha 2, akkor gyorsabban.
Általánosságban hogyan lenne érdemes hozzálátni a megvalósításhoz, miben gondolkodjak, pl, ami az animációt illeti? Javascript?
És hogyan jut el az adatbázisból származó információ az animációt megvalósító kódig?
(jdbc megy...)

[ Szerkesztve ]

(#11293) disy68 válasza javamonk (#11292) üzenetére


disy68
aktív tag

Attól függ az "alakzat" az micsoda és hogyan kerül oda. Ha megoldható, akkor CSS animációkkal/átmenettel oldd meg szerintem, amit egy class-al és css változóval (sebesség) irányítasz. A sebességet meg átadod mint globális js változó (generálod jsp-vel a lap betöltésekor). Vagy lekéred http-n keresztül egy végponton.

Egy minta css transition-re.

“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude

(#11294) togvau


togvau
senior tag

LazyInitializationException-t hogy lehet megoldani, EAGER-re állítás nélkül?
@Transactional ugye szokás szerint nem működik, a fő entity lekérdezése ugyan abban a @Transactional metódusban van, mint a subselectes getter hívása. Igaz, hogy nem is service layeren van, mert ez ugyan az a rakás... még mindig.

@OneToMany(mappedBy="parentInvoice", fetch= FetchType.LAZY, cascade= CascadeType.ALL, orphanRemoval=true )
@Fetch(value = FetchMode.SUBSELECT)
public List<ItemsEntity> getItemList() {
return itemList;
}
Már volt ilyen gondom, máshol, csak már nem tudom hol, csak arra emlékszem, hogy ott sem volt jó egyik dolog sem az EAGER-t leszámítva, amit a google kidob erre a hibára :), de sikerült EAGER nélkül valahogy.

[ Szerkesztve ]

hitler, sztálin, micro usb

(#11295) disy68 válasza togvau (#11294) üzenetére


disy68
aktív tag

"ott sem volt jó egyik dolog sem az EAGER-t leszámítva, amit a google kidob erre a hibára"

aham, mint ez meg ez, amikben kifejezetten azt írják, hogy ne használj eager-t ilyen helyzetben (első 2 találat)

Vlad Mihalcea blogját amúgy tudom ajánlani, ha hibernate és/vagy jpa a témakör.

“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude

(#11296) togvau válasza disy68 (#11295) üzenetére


togvau
senior tag

nem is akarok használni, de a példákban más megoldás nincs, lásd ott a fetch és mégse.
Az elméleletet tudom, meg azt is, hogy az jpa-nál ritkán stimmel a gyakorlattal, ahogy itt se.

A gyors megoldás az lett, hogy a service-ben nyomok egy gettert a sub entitykre semmibe vezetett eredménnyel, és utána már jó lesz a servicen kívül is.

De inkább azt választottam, hogy a @Fetch(value = FetchMode.SUBSELECT)-et átírtam FetchMode.JOIN-ra. Hogy ez most bug, vagy feature, nem tudom, mindenesetre logikát nem látok benne... úgyhogy a bug a valószínűbb.
Azt nem tudom mit csinál, nem is érdekel, ennek a rakás ürülék alkalmazásnak ez a legkisebb gondja :D

[ Szerkesztve ]

hitler, sztálin, micro usb

(#11297) floatr válasza togvau (#11296) üzenetére


floatr
veterán

A @Transactional többek között pont erre jó, hogy egyazon sessionbe kerül minden. Mondjuk eleve nem szeretem a metódus annotációkat, de nem hiszem, hogy az bezavarna.

(#11298) togvau válasza floatr (#11297) üzenetére


togvau
senior tag

Igen, elvileg így kéne, ezért is volt reflexből ez az első próba ezzel, de "túl szép, hogy igaz legyen".
Nem zavart be, csak nem oldotta meg a dolgot. Az égvilágon semmi változást nem okozott.

[ Szerkesztve ]

hitler, sztálin, micro usb

(#11299) disy68 válasza togvau (#11296) üzenetére


disy68
aktív tag

ha a fetch mód subselect, akkor n db kapcsolódó entity-vel n+1 query-t generál a hibernate, ez működik eager és fetch betöltésnél is, viszont a join fetch mód esetében 1 db query-t generál a hibernate, amivel lekéri a kapcsolódó entity-ket is, így ez instant eager betöltést jelent fetch type-tól függetlenül

én alapvetően a @NamedEntityGraph irányba mentem volna, ha nincs mód nagyobb refaktorra (bár ha ezt force-olja a projekt struktúra, akkor kb. mindegy, mert eager betöltés lesz a vége)

“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude

(#11300) togvau


togvau
senior tag

Rá kellett jönnöm, hogy a spring data nem olyan okos, mint hittem, így ha a @Query-s repositoriy metódus szignatúrájában nem lista van, hanem pl string, akkor nem tol egy LIMIT 1-et a DB-felé, hanem működik amíg egy találat van, és exception amint több is van...
Szóval hogy lehet korlátozni 1-re a találatok számát, natív query nélkül?
Tényleg az a legegyszerűbb, hogy a service-ben csak kiveszem a lista első elemét? Tákolásra kényszerít?
(metódusneves query leírás nem játszik, túl bonyolult ahhoz a query (pedig nem is igazán bonyolult))

hitler, sztálin, micro usb

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Java programozás (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.