JPA a JAXB anotace na objektu

Solmyrus

JPA a JAXB anotace na objektu
« kdy: 02. 07. 2015, 07:37:01 »
Zdravim,
chtel bych se zeptat na best practices pripadne na rozporujici nazor. Pripravuji applikaci v Jave EE, ktera bude stat nad JPA. Zaroven chci aby entitni tridy byli primo exportovatelne do XML. Je rozumne oanotovoat entitni tridu i JAXB anotacema a pouzit ji primo na mashalling?
Dekuji
 
« Poslední změna: 02. 07. 2015, 08:15:08 od Petr Krčmář »


tdvorak

Re:JPA a JAXB
« Odpověď #1 kdy: 02. 07. 2015, 07:48:56 »

Solmyrus

Re:JPA a JAXB
« Odpověď #2 kdy: 02. 07. 2015, 08:06:48 »
Ale me nejde o to jestli to jde a jak (to vim ze jde). Spis me zajima jestli to je z hlediska navrhu a analyzy spravne, jestli bych se tim  nedopustil nejakyho antipaternu nebo kde mi to muze zpusobit problem...

tdvorak

Re:JPA a JAXB
« Odpověď #3 kdy: 02. 07. 2015, 10:48:50 »
Ale me nejde o to jestli to jde a jak (to vim ze jde). Spis me zajima jestli to je z hlediska navrhu a analyzy spravne, jestli bych se tim  nedopustil nejakyho antipaternu nebo kde mi to muze zpusobit problem...

Best practices, anti-patterny... někomu připadá i getter jako antipattern. Spoléhal bych se na zdravý rozum a zamyslel nad tím, kde mohou nastat problémy: cyklické reference, těžce serializovatelná data (různé bloby, datumy), privátní data, která by neměla opustit aplikaci, resolvování velkého množství objektů a lazy loading.

Pokud s tím nemáš problémy a tvoje entity neobsahují nějakou magii a business logiku (tedy jsou především přepravky na data), pak bych se toho nebál a prostě to zkusil.

Solmyrus

Re:JPA a JAXB anotace na objektu
« Odpověď #4 kdy: 02. 07. 2015, 11:31:04 »
Nn drzim se toho ze entitni trida nesmi obsahovat zadnou logiku.
Ja vim ze veci jako best practices a parterny/antipaterny zni strasne vznesene a ze nekdo to dotahuje opravdu do extremu, ale pak jsem prebral java appku kde v tride na apptieru se tahaly data primo z entity manageru a filtrovali, misto toho aby to slo pres nejakou beanu nebo alespon servisni tridu. No a pak to ten clovek potreboval jeste v jinym view tak proste ctrl+c ctrl+v. Mel jsem chut brecet.
No a jsou veci, ktere clovek zjisti az praxi nebo ptanim se na zkusenosti (jako ze entitni tridy by nikdy nemeli slouzit jako podklad pro definovani WDSL, protoze pak nezmenis entitu bez toho aniz by jsi tim upravil i web-servisu...).


F.

Re:JPA a JAXB anotace na objektu
« Odpověď #5 kdy: 02. 07. 2015, 13:20:12 »
Vetsinou pouzivam rich domain model (logika vztahujici se k entite je v te entite), ale to by nemelo mit na tohle vliv - vzdycky vytvarim zvlast beany (vicemene dto objekty) ktery anotuju, ze dvou duvodu:

- kdyz nejaky chytrak (traba ja sam ze pul roku) zmeni ty entitni tridy (treba jen prejmenuje atribut) tak to nerozbije json/xml export
- nestane se me ze v exportu jsou data ktery tam byt nemaji.


Solmyrus

Re:JPA a JAXB anotace na objektu
« Odpověď #6 kdy: 02. 07. 2015, 13:38:03 »
No tohle je presne druhej pristup. A ted babo rad.
Ja to nebudu pouzivat pro nejakou webservisu. Spis jako zpusob serializace kdyz potrebuju prenyst datovy struktury mezi jednotlivymi instancemi (napriklad z ostreho na test). Takze vychazim z toho ze entita musi byt schopna se serializovat a deserializovat z XML. Pokud existuje lepsi zpusob, rad se necham poucit.

F.

Re:JPA a JAXB anotace na objektu
« Odpověď #7 kdy: 02. 07. 2015, 14:32:35 »
Pokud to neni interface nekam ven, ale opravdu pouze mezi instancema aplikace tak je asi zbytecne se s dto patlat..

A co obycejna java serializace misto xml? Ty jpa entity stejne nejspis implementujou Serializable.. A pokud ten serializovany format nepotrebujes cist, tak je to idealni reseni.