- lezso6: Nem látszik a kurzor Chrome alatt a beviteli mezőkben?
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- bitpork: MOD Júni 13 Augusztus 2- szombat jelen állás szerint.
- Parci: Milyen mosógépet vegyek?
- Elektromos rásegítésű kerékpárok
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Magga: PLEX: multimédia az egész lakásban
Új hozzászólás Aktív témák
-
WaterWawe
őstag
Sziasztok!
mvn exec:java -Dexec.mainClass=cinema.Program -Dexec.args="http://localhost:8080/WebService/Cinema A 5 Lock"
Az fent látható paranccsal szeretnék futtatni egy "Maven simple project"-et. A problémám ott kezdődik, hogy a program argumentumaként adott URL-t a maven megpróbálja pluginként feloldani. Nem meglepő módon, nem talál hozzá metadatat és elhal a build.A program Eclipseből indítva ugyanezekkel az argumentumokkal, hibátlanul működik. A cinema.Program osztály is megfelelően van benne. Mondhatnátok persze, hogy futtassasm Eclipse-ből, de egyetemi feladathoz kell és gondolom így fogják tesztelni.
Bármi ötlet, hogy ez mitől lehet?
(Én alapvetően .Netes vagyok, szóval most először dolgozom mavennel.)
-
Szmeby
tag
válasz
Drizzt #11387 üzenetére
Úristen, ez már ennyi ideje így működik?
Értem én, hogy kényelmes, de azért na, hát mióta nem antipattern a repository megnyitása a nagyvilágnak?! Legalább egy bekapcsoló annotációt el tudtam volna képzelni ehhez a remek fícsörhöz.
Minden esetre nagyon köszi a linket, ma is okosabb lettem. -
Drizzt
nagyúr
válasz
Szmeby #11386 üzenetére
Ez a Spring Data Rest default viselkedese. Convention over configuration, mint megannyi mas helyen a spring bootban.
Megfeleloen uj Spring verziokkal o lesz a baratod: [stackoverflow: set exposed repositories to annotated only. ] -
Szmeby
tag
Spring boot 2.4.0, data-jpa és data-rest függőségekkel. Jó, van még egy h2 db, meg egy actuator, de az nem számít. Semmi konfiguráció, sem extra függőség, nem értem.
Szóval csináltam egy hót egyszerű spring boot appot, tettem bele egy City nevű jpa entity-t, meg hozzá egy töküres JpaRepository-t. Zéró REST végpont mutat bárminemű City-vel kapcsolatos dologra, mégis, amikor megkérdezem a root végpontot, akkor ezt a fenti izét nyomja az arcomba.
Az összes végpont, amit csináltam egy "/hello", és a hello world-ön kívül semmit sem csinál.Már átnéztem a spring doksi teljes hateoas szócikkét, de egy falat megjegyzés sincs arról, hogy a spring kitalált nevű végpontokat szór fel nekem az alkalmazásomra csak úgy, expozálva ezáltal az app belső dolgait, konkrétan az entitások neveit. Egyrészt ez felháborító, hogy kérdés nélkül ilyet csinál, másrészt ti találkoztatok ezzel? Miatököm csinálja, és hogyan lehet kikapcsolni?
-
togvau
senior tag
Hello
Csináltam egy sql view-et, ami ugyan azt adja vissza mint az eredeti tábla, csak picit módosítva (előjelet cserél pár szám mezőben).
Gondoltam, csak simán származtatom az eredeti classból az új entity-t, ami tök üres, mert mindent tartalmaz az eredeti, csak a @table name más.
Na hát elszállt, egy értelmetlen exceptionnal mindig, egy értelmetlen nevű oszlop hiányára hivatkozva, amit az SQL kiíratással sem lehet beazonosítani.
Akkor is elszállt, ha nincs is lekérdezés az új entityvel, hanem a régivel, eltelt egy kis idő, hogy rájöjjek, az új entityt el kell tűntetni, és jó lesz a régi... komolyan kiválóan van megcsinálva ezA lényeg, hogy a hibaüzenetek egyikére rákeresve, arra találtam, hogy itt konkrétan közös táblát akar találni, pedig nekem az kellene, hogy semmi közük egymáshoz, csak a struktúra ugyan az. Erre találtam az @Inheritance annotációt, aminek typejaiban nincs olyan, hogy ne inheritáljon semmit.
Most copy paste-ként származtatás nélkül jók az új entityk, de ez csúnya. Hogy lehet elérni, hogy felejtse el azt, hogy bármi közöset keressen a szülő, és az új entityben? @MappedSuperclass ugye nem jó, mert mindkettőnek entity-nek kell lennie, a szülőnek, és a gyereknek is.
-
Gyuri16
senior tag
válasz
btraven #11381 üzenetére
Itt csak a megnevezesekben van kis kavarodas. Es abban, hogy a mapper fuggvenynel a Function volt generikus, itt pedig a src es dest valtozok (tipikusan valamilyen Collection).
A valtozok felhasznalasat kell nezni. A src egy Collection, ebbol a copy fuggveny olvasni fog ("The src argument provides the data to be copied"). Tehat a src egy producer.
A dest valtozo az eredmeny, ebbe a fugveny irni fog, tehat consumer. "the dest argument accepts data" -
btraven
őstag
válasz
Gyuri16 #11378 üzenetére
[link]
An "In" Variable An "in" variable serves up data to the code. Imagine a copy method with two arguments: copy(src, dest). The src argument provides the data to be copied, so it is the "in" parameter.
An "in" variable is defined with an upper bounded wildcard, using the extends keyword.Ott meg a bemenet consumer-re super-t ír?
-
togvau
senior tag
válasz
VikMorroHun #11379 üzenetére
Az indiai fejlesztők miatt, gondolom.
-
VikMorroHun
őstag
Az mé' van, hogy Java frissítés telepítésénél ha a felhasználó a licenc kérdésnél véletlenül az eltávolításra kattint, akkor se ellenőrző kérdés, se vissza lehetőség nincs, onnan kezdve fixen el lesz távolítva a Java (frissítés helyett)?
-
Gyuri16
senior tag
válasz
btraven #11376 üzenetére
Ha nem akarsz rajta gondolkodni, akkor eleg megjegyezni hogy "Producer extends Consumer super" - PECS.
mapper fuggveny elso parametere a bemenet, ez consumer. A masodik az eredmeny ez a producer.
Ha erdekel bovebben, akkor lehet itt kezdeni: [link]
Igaz collectionokrol van szo, de a lenyeg ugyanaz.map fuggvenynel maradva, vegyunk egy konkret mapper implentaciot.
mapper fuggveny parametere egy valtozo. Azt akarod, hogy a valtozo el tudjon tarolni egy T tipusu objektumot. Milyen lehet a valtozo tipusa? Nyilvan lehet T. Lehet-e T-tol leszarmazott osztaly? Nem, mert akkor nem tudna egy T tipusu objektumot tarolni (pl. Integer valtozoba nem lehet Object-et tarolni). Lehet-e T elodje? Igen, altalanosabb tipusu valtozoba lehet leszarmazott osztalyt kuldeni. (ismet: Object-be lehet Integert). Ezert super.Nezzuk a mapper fuggveny eredmenyet. Itt azt szeretned, ha egy R tipusu valtozoba el lehetne menteni.
R eredmeny = mapper(bemenet);
Milyen osztalyokra igaz ez? R lehet. R elodje nem lehet (Integerbe Object-et). R-tol leszarmazott lehet. Ezert extends.Ha eloszor foglalkozol ezzel, kicsit zavaros lehet. Ajanlom, hogy probald ki egy egyszeru A->B->C hierarchian Collectionokkel (ami a linkben van).
mod: amig irtam, nyilvan megeloztek
most mar itthagyom, hatha segit a magyar verzio.
-
btraven
őstag
<R> Stream<R>
map(Fucktion<? super T,? extends R> mapper)
ilyen esetben nem sérül a clean code elmélete?
Előző példánál maradva e -> e.getValue0()
miért? super T
az első type pataméter és miért? extends R
a második?vagy kár ezen filózni, elég "bután", rutinból használni ezeket a fucktional interface-ket és lambdákat?
-
togvau
senior tag
válasz
sztanozs #11371 üzenetére
ezt én is megtaláltam, de itt is látszik, hogy nincs normális megoldás. Azért az vicc, hogy ennyire összevissza működik valami... simán IDE-ből futtatva a projektmappában keresi, *ar-ba fordítva windowson a *ar mellett, linuxon viszont a user home-ban... és ez lenne a multiplatform
Ez sem értem, org.javatuples csomaggal:
storeItemTupleList.stream().map(e -> e.getValue0()).collect(Collectors.toList())
Ez runtime hasal el:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to org.javatuples.Pair
Akkor is ugyan ezzel a hibával hasa hasonlónáll, amikor vaadin grid<Pair<BigDecimal, String> setitems-t hívok és ilyet raknék be List<Pair<BigDecimal, String>>
Ez is csak runtime.Ez miért van?
Nincs kedvem külön DTO-t tákolni...
-
Szmeby
tag
Vannak bizonyos allami projektek, ahol elvarjak, hogy az ember rendelkezzen ezzel, vagy legalabb plusz pontnak minosul.
Nekem sokat segitett abban, hogy jobban megertsem a java furcsasagait, azokat a nuansznyi jellegzetessegeket, amivel az ember vagy egyszer az eletben talalkozik, vagy ugy megszokta mar, hogy fel se tunik neki. De ehhez mondjuk nem feltetlenul adnek ki soksok penzt a vizsgara, mert megtanulni ezeket ingyen is meg lehet, ott a java tutorials weboldala vagy mi a tokom a neve, minden info ott van szepen. Fake tesztekbol is Dunat lehet rekeszteni, ha valaki teszelni kivanja magat.
Jol mutat de hat na. Sok eve mar, hogy megcsinaltam, de ha az ember nem talalkozik azokkal a problemakkal, elfelejtodik, ahogy altalaban a dolgok az eletben. Es akkor megint ott vagyunk, hogy mindenki ahhoz ert a legjobban, amivel aktualisan foglalkozik.
-
btraven
őstag
OCP könyvből idézek:
"On the OCA, you learned that you could create a date using a factory. If you’ve forgotten how, don’t worry."Akkor miért tette le az OCA vizsgát ha mindent elfelejtett? Csak azért hogy legyen papírja?
-
togvau
senior tag
hogy lehet megaszondani, hogy a fájlt (string-ben van megadva a path majd Paths.get() ) az alkalmazás mellől olvassa? Tehát aprojektem mellé rakott fájlt akkor is ha IDE-ből indítom run-al, meg akkor is ha jar-ba van exportálva, és java -jar-al indítom.
Mert ugye ha simán fájl.txt akkor ide-ből indítva a projekt mappában keresi, jar-ba exportálva a jar mellett keresi, de mindenképpen relatív path maradjon, és kíndózon, linuxon ugyan az legyen a végeredmény. -
sztanozs
veterán
válasz
floatr #11364 üzenetére
Sajnos szerintem ez csak akkor fut le, amikor tényleg kihúzták a számokat - viszont találtam a pythonhoz time-machine modult is - azzal biztos működnie kéne
-
btraven
őstag
válasz
floatr #11364 üzenetére
Egyébként is kezdek rájönni hogy a legjobb a Java API-t nézni. Ott tömören pár sorban minden le van írva.
T reduce(T identity, BinaryOperator<T> accumulator)
T result = identity;
for (T element : this stream)
result = accumulator.apply(result, element);
return result;
Kell ennél több? -
floatr
veterán
-
btraven
őstag
Írtam egy ötöslottó számokat generáló programot. Nem tudom mi lehet vele a baj. Kiad 5 számot, de nem a nyertes számokat. Még egy számot se talált el.
-
smallmer
őstag
-
Chrystall
senior tag
Tudnátok segíteni abban, hogy lehetne összehozni helyesen az alábbi két szkirptet? Nem tudom szintaktikailag hogy lenne jó, nem értek a Javához. A lényeg, hogy az if-es rész megnézi szerepel-e a webcímben az adott string, ha nem, lefuttatja a további részt.
if(document.URL.indexOf("searchtext") = -1) { """"kód"""" }
És akkor a """kód"""-részben ez lenne:
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block;height:140px;border-collapse:collapse;"
data-ad-client="xxxxxxxxxxxxxxx"
data-ad-slot="xxxxxxxxxxxx"
data-ad-format="horizontal"
data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
-
#68216320
törölt tag
Sziasztok.
Kis segítséget kérnék.Milyen megoldással lehetne úgy futtatni egy külső (linux) parancsot, hogy a futása közben a konzolba kiírt tartalmat egy változóba/tömbbe kapja meg a hívó java class, hogy fel tudjam dolgozni.Például egy "ls" parancs (windows esetén ez a dir) a listázott fájlokat/könyvtárakat egy array vagy string-be tegye.Nem tudom mennyire érthető a feladat?Közben meglett
ProcessBuilder és getInputStream -
buherton
őstag
Sziasztok!
Eddig jó részt C-ben programoztam, meg egy kicsit C++-ban, de nem vagyok a modern nyelvi elemek tudora. Ellenben jövőre JavaEE-ben kell majd programoznom és szeretnék előre felkészülni.
Tudnátok ajánlani olyan tréning anyagot ami lefedi a JavaEE-t és esetleg a magasszintű pepgramozást is?
-
Drizzt
nagyúr
válasz
Aku-Aku #11349 üzenetére
Erre biztosan nem lesz szükséged. Ez beállítja aktív profilnak a @spring.profiles.active@-at, ami nagyon valószínű, hogy nem létezik. Szóval nyerni nem nyersz vele.
A logban hiba nincs. Viszont hiányzik belőle, hogy a Tomcat elindulna a 8080-as porton, mint ahogy a példa screenshotján is van.
Annyit látok a logodban, hogy a "D:\eclipse_workspaces\java_coding_exercises\HelloWorld_Example\target\classes" könyvtár biztosan rajta van a classpathon. Mik vannak ebben a könyvtárban? Benne van a ApplicationConfiguration.java? Illetve egyáltalán a Spring MVC-s dependency-k ott vannak? Távolról ezt elég nehéz diagnosztizálni. -
Aku-Aku
tag
Ja és itt van az application.properties tartalma:
spring.application.name = HelloWorldExampleApplication
server.port=8080
spring.profiles.active=@spring.profiles.active@ -
Aku-Aku
tag
válasz
Drizzt #11347 üzenetére
2020-12-04 17:35:24.343 INFO 2816 --- [ main] c.e.demo_2.HelloWorldExampleApplication : Starting HelloWorldExampleApplication using Java 1.8.0_181 on GotrekGurnisson with PID 2816 (D:\eclipse_workspaces\java_coding_exercises\HelloWorld_Example\target\classes started by Apa in D:\eclipse_workspaces\java_coding_exercises\HelloWorld_Example)
2020-12-04 17:35:24.346 INFO 2816 --- [ main] c.e.demo_2.HelloWorldExampleApplication : The following profiles are active: @spring.profiles.active@
2020-12-04 17:35:24.806 INFO 2816 --- [ main] c.e.demo_2.HelloWorldExampleApplication : Started HelloWorldExampleApplication in 0.782 seconds (JVM running for 1.406)Ez van a konzolon.
Itt már látszik, hogy próbálkoztam a profillal. -
Aku-Aku
tag
válasz
Drizzt #11345 üzenetére
Köszi!
Közben pontosan azt csináltam amit most látok, hogy javasoltad.
De, az egész dolog több sebből is vérzik sajnos.
Kezdjük ott, hogy ha elindítom az alkalmazást 3 sor üzenet után rögtön terminálódik. Próbáltam valami profile dolgot csinálni mert arra is panaszkodott, de hiába, nem segített. Vagy igen, de az kevés volt.
Nem jövök rá, mi az ami hiányzik.
Ha van valami tanács, hogyan maradjon életben az applikáció annak nagyon örülnék. -
Drizzt
nagyúr
válasz
Aku-Aku #11344 üzenetére
Ranezve a @RestController komponensre gondol konfiguracio alatt. Nem vilagos, hogy miert igy hivja.
Mindenestre annyi az egesz, hogy a HellowWorldExampleApplication.java melle csinalj egy ApplicationConfiguration.java nevu fajlt, a kepen megadott tartalommal, s ennyi. Rakhatod olyan package-be is, ami melyebben van, mint az HelloWorldExampleApplication, mert a component scanninggel azt is meg fogja talalni. -
Aku-Aku
tag
Sziasztok!
Az alábbi tutoriálon (Eclipse, Java, Spring Boot, Microservice) próbálok végigmenni:
[link]
Ott akadtam el, hogy valami configuration fájlt kellene csinálni, ezt írják róla:
"Even though this application acts ready as a stand-alone application, we will still add a configuration file to it. This will help us handle the HTTP requests. Refer to the snapshot below."
Szerintetek hogyan kellene elkészíteni és hogyan kellene hozzáadni az alkalmazáshoz?
Előre is köszi. -
Szmeby
tag
válasz
audiophile2! #11339 üzenetére
Az altalad emlitett absztrakcios szinten (milyen erteket vehet fel a valtozo, mi irja es mi olvassa, hany kozbeiktatott metodushivas van, stb) valoban nincs ertelme a getter setter-szeru megoldasoknak. Csak utban vannak.
Viszont az OOP _nem_ ezen az absztrakcios szinten ad valaszokat. Ez nagyon fontos, mert majd igy tudod csak feltenni a jo kerdest. Az OOP eseten sokkal fontosabb kerdes, hogy mi az osztaly celja, mi a SZANDEK, ami az osztaly letet igazolja. Ez mar filozofia, madafaka!
Szoval egy pelda kedveert ha van egy osztalyod, ami egy teglalapot reprezental, akkor valoszinuleg van neki olyan mezoje, ami a szelesseget, meg egy olyan, ami a hosszusagot tarolja. Adna magat a dolog, hogy legyen public es csokolom. DE ha ennek az osztalynak az a szandeka, hogy segitsen az adott sikidom teruletenek, keruletenek meghatarozosaban, akkor a tobbi osztaly fele' kotelessege csak ezt a infot kommunikalni, es semmi tobbet. Ugyanis, ha ennel tobb infot kommunikalna kifele, akar a szelesseget, hosszusagot, akar ezt meg irhatova is tenne, abban a pillanatban behozna pl azt a kockazatot, hogy ezzel mas osztalyok visszaelnek.
Amivel visszaelhetnek, azzal vissza is fognak elni. Hidd el, nem akarsz egy spagetti kodban konyekig turkalni egy apro kis bug megszuntetese celjabol... mikozben 20000 sort kell modositanod ilyen olyan helyeken, mert minden mindent is hasznal.
Tehat a szoftverfejleszto epelmejusege megorzese celjabol fontos az, hogy egy osztaly kizarolag azt az infot adja ki magabol, amire terveztek, es semmi tobbet. A legtobb esetben pedig ez az info koszonoviszonyban sincs az osztaly tenyleges allapotaval. Hiszen a szandek es az allapot fizikai reprezentacioja elter minden olyan esetben, amikor az az osztaly tenylegesen csinal is valamit. A szoftvereket pedig azert keszitjuk, hogy csinaljanak valamit.
Igy aztan egy eszen jo okolszabaly tud lenni a mezok elrejtese.
-
válasz
audiophile2! #11339 üzenetére
-
Gyuri16
senior tag
válasz
audiophile2! #11339 üzenetére
Hátránya hogy lassabb mert van közben egy metódus hívás.
Nem feltetlenul, compiler ilyen dolgokat tud optimalizalni.
Az elonyokrol mar irtak a tobbiek. Ha bovebben erdekel nezz utana valamilyen objektumorientalt programozasrol szolo konyvben/cikkben mirol szol az encapsulation.
Ezeknek az OOP elveknek az elonye altalaban akkor latszik, ha az ember valami bonyolultabbat csinal. Vagy ha az eredetileg egyszeru osztalyokba uj dolgot kell hozzaadni. Ilyenkor elonyos ha mar az elejetol ugy volt irva a kod, hogy kesobb konnyu legyen valtoztatni. Viszont nyilvan tulzasba esni se jo, felesleges tulbonyolitani egy egyszeru kodot csak azert, mert egyszer lehet hogy szukseg lesz ra.
Peldadhoz visszaterve: ha letrehoznal kesobb egy olyan osztalyt, ahol az x koordinata erteke csak egy kisebb intervallumbol lehet, akkor sokkal egyszerubb lesz megoldanod, ha a kodban mar van egy setter. Anelkul minden egyes helyet ahol uj erteket allitasz be at kell irnod.
-
sztanozs
veterán
válasz
audiophile2! #11339 üzenetére
Ez a rossz, példa, mert általában nem ez a tipikus. Persze ebben a példában tök felesleges őrizni a paramétert.
-
audiophile2!
csendes tag
válasz
sztanozs #11338 üzenetére
Rosszul kérdeztem, rossz példával
Egy osztályban van 1 int x koordináta. Ennek bármilyen értéke lehet Integer.MAX_VALUE és Integer.MIN_VALUE között.
Én csak azt látom eddig csak a getter/setter előnyének hogy ha 100 helyen olvassák és 1 helyen írják akkor könnyű megtalálni azt az 1 módosítási helyet.
Hátránya hogy lassabb mert van közben egy metódus hívás. -
Zsoxx
senior tag
válasz
audiophile2! #11333 üzenetére
Ráadásul a setterben kontroll alatt tarthatod a bemenő értékeket (nem enged akármilyen értéket átadni a változónak).
-
válasz
audiophile2! #11333 üzenetére
De ha nem veszel fel hozzá akkor nem publikus.
Egy osztályod belső állapotát tárolod egy változóban. Biztos, jó ötlet, hogy boldog és boldogtalan módosítani tudja? Nem. Ha viszont ez az elvárt akkor ott a lehetőség rá.
-
audiophile2!
csendes tag
Miért melegen ajánlott egy osztályban a private field?
Hiszen ha felveszek hozzá egy public setter-t akkor ugyanott vagyok mintha publikus lenne.class X {
private int y;
public setY(int y) {
this.y = y;
}
} -
Zsoxx
senior tag
válasz
artiny #11331 üzenetére
Kismillió ilyet találsz a Youtube-on, akár magyarul is.
https://www.informatikatanarok.hu/erettsegi-feladatok/emelt-szintu-informatika-erettsegi-feladatok-es-megoldasok -
artiny
őstag
[JAVA tanulás] kozep sulis szintu java alapokat keresek, esetleg erettsegi teteleket kidolgozva, magyarul vagy angolul gyerekeknek irodott anyagot /foleg interaktiv/ ?
szeretnek megtanulni JAVA zni , es azt alacsonyabb szinten, lebutitva kezdeni,hogy mindent jol ersek es fokozatossan neheziteni az olvasmanyokat/videokat/tananyagot/andoroidos tanito app/ - barmi johet
-
Szmeby
tag
válasz
bggmnd #11329 üzenetére
BorderPane, VBox, ImageView, GridPane, ...
Nem csak a kinezet szamit, hanem a szandek, hogy az adott komponens milyen problemat old meg, milyen modon, szoval ezt neked kell igazabol tudnod, mibol melyik lesz a megfelelo, a menusort csinalhatod gombokkal, linkekkel, menuitem komponensekkel, es szamtalan mas modon, rajtad all.A dokumentacio mindig jo kiindulopont szokott lenni.
Javaslom, hogy dobd fel a gepre a scene buildert, abban egerrel szepen ossze tudod kattintgatni es kiprobalni a kulonbozo layoutokat.
-
bggmnd
csendes tag
-
taf120
csendes tag
Ezt szeretem. Ha debugger-ben jól működik a program, egyébként meg nem.
-
bggmnd
csendes tag
Sziasztok!
Egy java windows alkalmazást készítek Java FX használatával.
Szeretnék tőletek kérni segítséget abban, hogy mi a legegyszerűbb és legszebb módja annak, hogy az egyik menüre kattintva egy tájékoztató szöveg jöjjön be néhány képpel? Nem tudom, hogy mibe rakjam a szöveget, hogyan építsem fel, stb...Köszönöm szépen
-
taf120
csendes tag
OCP könyvben az van írva: Count=2 ?
Stream<Integer> fromArray = Stream.of(1,2,3);
System.out.println(fromArray.count());
-
Szmeby
tag
válasz
togvau #11317 üzenetére
Sajnálattal hallom. Az én emlékezetem is egy aranyhaléval vetekszik. Javaslok egy jelszókezelőt, nekem bevált.
Bizonyára megtehetné, hogy mindkettőt nézi, persze. Csak ez az extra kényelem a háttérben iszonyatos komplexitást generál. A fejlesztők hoztak egy döntést, hogy ez a kényelem nem tesz hozzá annyit, hogy emiatt a framework mondjuk lomha legyen.
Persze ha tudsz egy olyan megoldást, ami nem rontja a framework hatékonyságát, mégis kényelmes, javaslom, beszélgess a hibernate készítőkkel, talán vevők lesznek az ötletre. A hibaüzi mondjuk jól hangzik.
-
floatr
veterán
válasz
togvau #11315 üzenetére
https://docs.jboss.org/hibernate/orm/5.1/userguide/html_single/chapters/domain/access.html
Azért használ eltérő módszert a két elérésre, mert field access esetében kell proxy/introspection/reflection. A hiányosság itt a framework és a technológia ismeretében van. -
togvau
senior tag
válasz
Szmeby #11316 üzenetére
Én arra se emlékszem amit múlt héten olvastam, főleg ha nem találkozok rendszeresen az ott olvasott dologgal. Sajnos nem fér el a sok számot, kis-nagybetűt, és most már speciális karaktert is kötelezően tartalmazó jelszavak, meg az évszak divatjainak megfelelő frameworkok felesleges infoi mellé.
Annyira nem közismert, hiszen akkor a google-n rögtön kidobott volna rá ilyen megoldást, még is, erre a hibára csak a rossz importos válaszú dolgokat dobta fel.
Igényes munkát nem akarok végezni, hiszen egy igénytelen ürülékrakást kell úgy ahogy használhatóvá tákolni, hiszen újraírásra (amivel igényessé lehetne tenni) nincs pénzMi a nevetséges abban, hogy egy hiányosságot fikázok? Ez egy marhaság. Default mindkettőt néznie kéne. De legalább is specifikus errorban jelezni, hogy máshogy kéne.
-
Szmeby
tag
válasz
togvau #11315 üzenetére
Én például onnan tudom, hogy valamikor régen olvastam a hibernate dokumentációjában. Szerintem elég közismert dolog... legalábbis a dokumentációba belelapozó emberek között. Én úgy vagyok vele, hogy ha igényes munkát akarok végezni, akkor érdemes megismerni a használt frameworkot kicsit közelebbről is. Így amikor fikázom, talán kisebb eséllyel teszem magamat nevetségessé.
szerk.: A jelenség a transient módosítótól teljesen független.
-
togvau
senior tag
válasz
floatr #11314 üzenetére
húúú nem hittem volna, hogy ennyire gagyi
sajnos nincs kapacitás az 5642 divatos framework lelki világát, bugjait, hiányosságait bemagolni.
Hogy sikerült rátalálni? Én akárhogy is kerestem rá guglin, csak olyan jött ki, hogy nem azt a transient-t használja ami oda kell, hanem másikat. -
floatr
veterán
válasz
togvau #11313 üzenetére
A hibernate az @Id annotáció alapján választ stratégiát arra, hogyan kezelje a bean adatait. Ha field-en van, akkor reflection-t használ mindenre, ha getteren, akkor a metódusokat. Vegyesen csak akkor lehet használni, ha felülcsapod a default stratégiát egy
@Access
(AccessType.FIELD)
annotációval, amit a field-re akasztasz rá.Imádkozás helyett specifikáció, vagy tutorial. Ez a középkorban is sokszor bevált volna.
-
togvau
senior tag
JPA: eddig én a saját cuccaimban, és a munkáknál is az entity osztályoban a field deklarációk fölé raktam az annotációkat, pl a a kapcsolatok, vagy a @Transient-et is.
Mostani projektben a getterek fölött van, úgyhogy igazodtam ehhez, egy kivétellel amikor egy @Transient fieldet csináltam. Aztán folyamatosan elszállt runtime, hogy nem találja azt a fieldet... javax persistence transient volt pedig, de a spring datással is ugyan ez.
Aztán "áh ez már kb az imádkozás szint" átraktam a getter fölé, és megy...Ez WTF?
-
togvau
senior tag
sikerült ez is, meg másikat is, mindent full generikusra sikerült csinálni
-
togvau
senior tag
válasz
togvau #11309 üzenetére
Látom, elég csak a kimenetnél megszabni a korlátozást, és az a bemenetre is vonatkozik.
De újabb probléma: a newClass-nak vannak tételei is listában, minden invoice-nak saját fajta... azok is egy közös abstract osztályból származnak, de hogy tudok nem fixen létrehozni tétel osztályt?
kimeno.callTetelekLista().getClass().getGenericSuperclass(); talán így meg van a listaelemek osztálya (már ha akkor is működik ha a call null-t ad vissza, mert nincs list még hozzáadva)
(mert futás időben nincs generikus)De hogy ha van egy metódus, hogy getItemType és abba egyenként fixen meg van adva entitynként, hogy mi tartozik hozzá, akkor be tudom szerezni a classt. Viszont hogy hozom létre, hogy hozzáadhassam a listához? newInstance oké
-
Drizzt
nagyúr
válasz
disy68 #11307 üzenetére
En a newClass helyett inkabb Supplier<T>-t hasznalnek. Akkor nem vagy megkotve, hogy csak 0 parameteres konstruktoru osztalyokkal mukodjon.
Az se teljesen vilagos, hogy ez miert egy static method, elso erzesre siman lehetne az AbstractInvoiceEntity-nek egy tagmetodusa.
-
disy68
aktív tag
válasz
togvau #11306 üzenetére
protected static <T extends AbstractInvoiceEntity> T getInvoiceEntity(AbstractInvoiceEntity originalEntity, Class<T extends AbstractInvoiceEntity> newClass) {
T newInvoice = newClass.newInstance();
(...)
return newInvoice;
}
valami ilyesmi vagy átadsz egy factory-t, ami létrehozza a kívánt objektumot -
togvau
senior tag
protected static KimenoSzamlaEntity getInvoiceEntity(AbstractInvoiceEntity originalEntity) {
KimenoSzamlaEntity kimeno= new KimenoSzamlaEntity();
BeanUtils.copyProperties(originalEntity,kimeno,"parentInvoice", "identifier");
List<KimenoTetelekItemsEntity> items=new ArrayList<>();
for (AbstractInvoiceItemsEntity item: originalEntity.callTetelekLista()) {
KimenoTetelekItemsEntity itm= new KimenoTetelekItemsEntity();
BeanUtils.copyProperties(item,itm, "parentInvoice", "identifier");
itm.setParentInvoice(kimeno);
items.add(itm);
}
kimeno.setTetelekLista(items);
return kimeno;
}
Erre valami tipp, hogy lehetne generikusabbá tenni? Pl hogy a "kimeno" típusa mondjuk bemeneti paramétertől függjön (de ne kelljen végig instanceofolgatni az összes lehetséges bemeneti osztályt), és amúgy extends AbstractInvoiceEntity.
-
togvau
senior tag
JPA entity abstract ősosztályának miért nem lehet abstract metódus deklarációja?
-
togvau
senior tag
Mi baja lehet?
SELECT new asd.dto.SzallitoiMegrendelesDTO(m.bizszam, AVG(tl.egysegAr), SUM(tl.mennyisegME1), SUM(tl.mennyisegME2), SUM(tl.mennyisegME3)) FROM Megrendeles m LEFT JOIN MegrendelesTetelek tl ON tl.parentInvoice=m WHERE tl.cikk... GROUP BY m.bizszam
Sumokat szépen megcsinálja. AVG viszont 0.0 a DTO-ban, ahol double típusnak volt megadva a field, mert ha bigdecimalra állítom adok meg sír, hogy nincs konstruktor double-val. DB-ben decimal típusúak amiket átlagolnia kéne, és ha a DB-n lefuttatom a queryt sima SQL-ben, jó az átlag is. Az entity-ben is bigdecimal, mégse engedi az. Fura, mert a SUM-ok azok bigdecimalok, és engedi a dto-ban is a bigdecimalt. AVG-nél nem.
-
togvau
senior tag
tehát nem lehet így. Ezt én is megtalátam.
Nem értem miért nem fejlesztik a JPQL-t is, vannak minden DB-ben működő, de JPQL-ben nem létező funkciók. Ez a találat limitálás tól-ig is ilyen. Van ahol "LIMIT" van ahol "TOP", de ugyan az az implementáció elintézné...Pár hónapja egyébként ilyen hibernate hackel raktam bele a GROUP_CONCAT-ot (amit szintén szinte minden DB tud, ez esetben a H2 is, csak JPQL-ben nem volt ilyen):
public class SqlFunctionsMetadataBuilderContributor implements MetadataBuilderContributor {
@Override
public void contribute(MetadataBuilder metadataBuilder) {
metadataBuilder.applySqlFunction("group_concat", new StandardSQLFunction("group_concat", StandardBasicTypes.STRING));
}
}
Aztán ment pl:...dto.Photolist(p.user.id, GROUP_CONCAT(p.id)) FROM Photo p WHERE p.user.id IN ?1...
Lehet itt is kipróbálom... majd munkaidőben
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Xbox Series X|S
- One otthoni szolgáltatások (TV, internet, telefon)
- Delta Force (2024)
- Sütés, főzés és konyhai praktikák
- lezso6: Nem látszik a kurzor Chrome alatt a beviteli mezőkben?
- Call of Duty: Black Ops 6
- Autós topik látogatók beszélgetős, offolós topikja
- Vezetékes FEJhallgatók
- Windows 11
- Xbox tulajok OFF topicja
- További aktív témák...
- AKCIÓ! Gigabyte H610M i5 13600K 16GB DDR4 512GB SSD RTX 3060Ti 8GB Zalman S2 TG Seasonic 650W
- Samsung Galaxy A14 64GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA! Épített KomPhone Ryzen 5 7500F 32/64GB DDR5 RTX 5060 8GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 10600KF 16/32/64GB RAM RTX 3050 6GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged