Is dit die moeite werd om te beweeg van 'n handgemaakte hiberneer kartering lêer te annotaions?

StackOverflow https://stackoverflow.com/questions/82223

  •  09-06-2019
  •  | 
  •  

Vra

Ek het 'n webapp wie se oorspronklike kode basis is ontwikkel met 'n handgemaakte hiberneer kartering lêer het. Sedertdien het ek redelik vaardig op 'kodering' my hbm.xml lêer geword. Maar al die koel kinders gebruik notas deesdae.

So, die vraag is: Is dit die moeite werd om my kode refactor te hiberneer annotasies gebruik? Ek sal enigiets, behalwe dat hip en moderne kry? Ek sal enige van die beheer Ek het in my bestaande hand gekodeer kartering lêer verloor?

'n sub-vraag is, hoeveel moeite sal dit wees? Ek hou van my databasisse lean and mean. Die kartering dek slegs 'n dosyn domein voorwerpe, insluitend twee stelle, 'n paar subclassing, en sowat 8 tafels.

Dankie, liewe SOpedians, by voorbaat vir u ingeligte menings.

Was dit nuttig?

Oplossing

"As dit nie gebreek - nie los dit"

Ek is 'n outydse POJO / POCO soort van man in elk geval, maar hoekom verander om notas net om koel te wees? Na die beste van my kennis wat jy kan die meeste van die dinge as byskrifte doen, maar die meer komplekse afbeeldings word soms meer duidelik uitgedruk as XML.

Ander wenke

Een ding wat jy kry van die gebruik van notas in plaas van 'n eksterne kartering lêer is dat jou kartering inligting sal wees op klasse en velde wat instandhouding verbeter. Jy voeg 'n veld, jy onmiddellik voeg die body. Jy verwyder een, jy ook die body te verwyder. jy hernoem 'n klas of 'n stuk grond, die body is net daar en jy kan die tafel of kolom hernoem as well. jy maak veranderinge in die klas erfenis, is dit in ag geneem word. Jy hoef nie te gaan en later wysig 'n eksterne lêer 'n geruime tyd. dit maak die hele ding meer doeltreffende en minder fout geneig.

Aan die ander kant, sal jy verloor die globale siening jou kartering lêer gebruik om jou te gee.

Ek het onlangs albei gedoen in 'n projek en gevind:

  1. Ek verkies die skryf van notas om XML (speel goed met statiese tik van Java, motor-volledige in IDE, refactoring, ens). Ek hou daarvan om te sien die dinge alles saam geweef eerder as heen en weer gaan tussen-kode en XML.
  2. kodeer db inligting in jou klasse. Sommige mense vind dat die bruto en onaanvaarbaar. Ek kan nie sê dit pla my. Dit het om iewers te gaan en ons gaan die oorlog herbou vir 'n verandering, ongeag.
  3. Ons het eintlik al die pad na JPA notas, maar daar is beslis gevalle waar die JPA notas is nie genoeg nie, so dan moes gebruik óf Hibernate notas of config af te stel.
  4. Let daarop dat jy eintlik beide aantekeninge en HBM lêers kan gebruik. Dalk 'n mooi baster wat die O deel in annotasies en R deel in HBM lêers spesifiseer, maar klink soos meer moeilikheid as wat dit die moeite werd wees.

Soveel as wat ek graag aan te beweeg na nuwe en potensieel beter dinge ek nodig het om te onthou om nie gemors met dinge wat nie gebreek. So as wat die hiberneer afbeeldings in 'n aparte lêer vir jou werk nou ek wil nie dit te verander.

Ek het beslis notas verkies, hulle albei gebruik het. Hulle is baie meer onderhou en omdat jy nie te doen het met wat baie klasse weer kaart, sou ek sê dit is die moeite werd. Die notas maak refactoring baie makliker.

Al die funksies word ondersteun beide in die XML en in annotasies. Jy sal steeds in staat wees om jou notas te omseil met xml verklaring.

As vir die moeite, ek dink dit is die moeite werd as jy in staat is om al sien op een plek sal wees en nie te wissel tussen jou kode en die XML-lêer (tensy van-kursus wat jy gebruik twee monitors;))

  

Die enigste ding wat jy kry van die gebruik   annotasies

Ek sou waarskynlik argumenteer dat dit die ding wat jy wil om te wen van die gebruik van notas. Omdat jy nie saam te stel tyd veiligheid met NHibernate is hierdie die volgende beste ding.

  

"As dit nie gebreek - nie los dit"

@Macka - Dankie, ek nodig het om te hoor dat. En baie dankie aan almal vir jou antwoorde.

Terwyl ek in die baie bevoorregte posisie dat hy 'n stapelgek hoeveelheid professionele en kreatiewe beheer oor my werk, en kan bring in net oor 'n tegnologie, biblioteek, of hulpmiddel vir net oor enige rede (Baring duur goed) insluitend "omdat al die koel kinders gebruik dit" ... dit maak nie regtig sin om die hawe wat neerkom op 'n beduidende gedeelte van die kern te maak van 'n bestaande projek.

Ek sal probeer Hibernate of JPA notas met 'n groen-veld projek 'n geruime tyd. Ongelukkig kry ek selde nuwe heeltemal onafhanklike projekte.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top