- 1738 megtekintés
Hozzászólások
elso ranezesre az a baja, hogy konkret tipusokhoz van serialization policy, viszont a JPA-ba bevont map nem HashMap, hanem csak az interfesze latszodik, interfeszt szerializalni meg izgi ;)
ha igy akarod megoldani, akkor irj az interfeszhez policyt, szerintem mukodik.
- A hozzászóláshoz be kell jelentkezni
Ha esetleg ebben az interfacehez policy írásban segíteni tudnál, azt nagyon meg tudnám köszönni
(Ja, ofkoz Java newbie, EE+GWT wannabe, stb. vagyok)
- A hozzászóláshoz be kell jelentkezni
ha nagyon nem megy, osszedobok valami tesztkornyezetet, de most nincs fent semmi :)
- A hozzászóláshoz be kell jelentkezni
igen, ezt az oldalt én is néztem, ez legalább akkora workaround, mint HashMapbe átpakolni, majd visszamenteni a dolgokat. Mindjárt leírom, végül mire jutottam.
- A hozzászóláshoz be kell jelentkezni
GWT csak bizonyos alap java osztályokat tud átküldeni. Itt le vannak írva melyikeket. A baj az, hogy a java.util.Hashtable nincs közöttük a java.util.HashMap meg igen. Amikor HashMap-et használsz azt ismeri, viszont a Glassfish-es JPA implementáció (TopLink talán?) Hashtable-t rak be. A kézi átforgatáson kívül (amit csinálsz is) én nem sok egyéb esélyt látok a megoldásra. A JPA kezelt collection-ökkel szerialázáláskor (nem csak gwt hanem pl jaxb esetén is) elég sok baj van, főleg ha még lazy-ben is lennének kiszedve (nálad ez eager úgyhogy ez neked most nem okoz problémát).
Egy másik lehetőséged, hogy a TopLink helyett Hibernate-t használsz, az talán HashMap-et tesz be ilyen esetben.
- A hozzászóláshoz be kell jelentkezni
Igen, én is erre jutottam. Valószínűleg minden entitásosztályom egy GwtRpcFixNeeded absztrakt interfészből fog származi, amely interfésznek public Típus fix(); függvényét kell implementálni. Az implementáció majd megcsinálja a Map-et, majd visszatér this-zel. Illetve az összes nested entitásosztály fix()-ét is meghívja.
- A hozzászóláshoz be kell jelentkezni
Inkabb modositsd a gettert, hogy hozza letre elso hivaskor a HashMap-et es irja felul a Hashtable adattagot. Vagy annotalj @PostLoad-al egy metodust az entitasodban, ami elvegzi ezt betoltes utan!
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
- A hozzászóláshoz be kell jelentkezni
Ezt találtam hirtelen:
http://www.java-forums.org/new-java/31396-obsolete-collection-import-ja…
Nem tudom, hogy ennek van-e köze a problémához - pl. hogy a Google csak a HashMap-et támogatja, mert csak. Az is lehet, hogy mivel néhol HashMap-et írsz, Hashtable-t - nem mindenhol ugyanaz van kódodban, és az egyik helye a Map mögé Hashtable-t raksz. Próbáld ki, ha teheted, hogy minden Hashtable használatot HashMappel váltasz ki!
- A hozzászóláshoz be kell jelentkezni
A kód kb. ennyi. Csak egy szintetikus teszt kód, sehol nem használk HashTablet.
- A hozzászóláshoz be kell jelentkezni
neked nem is kell; ugye mivel JPA kezeli az entitasod fieldjeit is, igy o injektal oda valami kollekciot; alapbol a Mapre HashMapet (a Setre HashSetet) injektal.
- A hozzászóláshoz be kell jelentkezni
Én azt próbálnám ki hogy nem Map-t adok meg hanem HashMap-et:
private HashMap testMap;
Illetve kipróbálnám Set-tel.
- A hozzászóláshoz be kell jelentkezni
Már nem emlékszem pontosan, de HashMap-pel valami gondja volt a JPA-nak.
- A hozzászóláshoz be kell jelentkezni
Köszönöm szépen mindenkinek az építő ötleteket, javaslatokat, linkeket, különösen persicsb-nek az IM-en keresztüli ötletelést.
- A hozzászóláshoz be kell jelentkezni
Szivesen, bar en nem adtam ra megoldast.
- A hozzászóláshoz be kell jelentkezni