Vra

Ek het 'n groot program wat EJB 2.x entiteit bone gebruik (BMP). Dit is goed bekend aan 'n aaklige volharding strategie wees (ek kan uitbrei indien nodig).

Ek wil graag begin migreer hierdie aansoek om 'n baie meer ekspressiewe, deursigtig, en nie-indringende volharding strategie gebruik, en gegewe my maatskappy se vorige ondervinding met dit, Hibernate 3.x is die ooglopende keuse.

Migreer na Hibernate gaan 'n rukkie neem, as meer as 100 tafels in die gebruik aansoek entiteit bone. So ek is op soek na 'n gefaseerde benadering waar die twee volharding strategieë uit te voer in parallel, ideaal op dieselfde tafels op dieselfde tyd, indien moontlik.

My vraag is, wat is die slaggate (indien enige) van die kombinasie van hierdie twee volharding strategieë? Sal hulle kry in mekaar se pad?

Was dit nuttig?

Oplossing

As gesê jodonnel, moet jy aandag te skenk aan die kas, want as jy tweedevlak-caching gebruik in Hibernate en 'n tafel aangepas buite Hibernate, dan Hibernate het geen manier om te weet dat sy kas inskrywing is verouderd.

Vir die transaksies, moet hulle altwee gebruik JTA voorsien deur die houer, so vir wat dit veilig sou wees.

Ander wenke

Ek dink die ding om werklik versigtig met werk saam met die Hibernate sessies wees. Hiberneer caches dinge, en wat dalk in die pad.

Om eerlik te wees wil ek beveel aan dat as jy Hibernate neem, val die Entiteit bone heeltemal. Doen jou Hibernate werk binne sessie bone en laat die sessie bone jou transaksies te bestuur.

Of afwisselend gebruik EJB 3, wat is Hibernate gestandaardiseerde in die Java Persistence API.

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