Momenteel werk ik aan een webapplicatie (Struts/Tiles, Spring en Hibernate) en ben ik op zoek naar een goede best practice voor het afhandelen van de koppeling/loskoppeling tussen het ORM gedeelte en het Web (MVC) gedeelte.
Er zijn meerdere mogelijkheden om deze mismatch op te vullen. Momenteel gebruik ik volgende aanpak:
Op zich is deze methode nog niet zo slecht, al zit je wel met een aantal issues zoals locking en transacties. Op welke manier weet je namelijk of de velden die je aanpast nog effectief kloppen en niet gewijzigd werden door een ander?
Ik neem aan dat er nog tal van andere mogelijkheden zijn. Ik lees ook net iets van een OpenSessionInViewFilter, maar weet er het fijne niet van. Is er iemand die hier al ervaring mee heeft? Eventuele pitfalls? Performance problemen??
Wat is jullie idee over de koppeling tussen MVC en het ORM gedeelte??
Op welke manier verzorgen jullie deze koppeling?
Er zijn meerdere mogelijkheden om deze mismatch op te vullen. Momenteel gebruik ik volgende aanpak:
code:
Ik zou verwachten dat de laatste saveOrUpdate(vo) niet meer nodig zou zijn, maar dit is wel het geval aangezien er anders niets gesaved wordt. Ik neem aan dat de sessie alweer gesloten wordt na het ophalen (2de keer).1
2
3
4
5
6
7
8
9
10
11
| <EDIT FORM>
1.) DAO --> BL --> Action--> View page
- Haal object op: dao.findByPrimaryKey(id);
- Bevolk de actionform met deze waarden
- Toon ingevuld formulier op het scherm
<MODIFY FORM>
<SAVE>
2.) Action --> DAO --> Action --> BL --> DAO
- Haal object opnieuw op, overeenstemmend met een ID/Handle
- Set de nieuwe waarden op de VO
- dao.saveOrUpdate(vo) |
Op zich is deze methode nog niet zo slecht, al zit je wel met een aantal issues zoals locking en transacties. Op welke manier weet je namelijk of de velden die je aanpast nog effectief kloppen en niet gewijzigd werden door een ander?
Ik neem aan dat er nog tal van andere mogelijkheden zijn. Ik lees ook net iets van een OpenSessionInViewFilter, maar weet er het fijne niet van. Is er iemand die hier al ervaring mee heeft? Eventuele pitfalls? Performance problemen??
Wat is jullie idee over de koppeling tussen MVC en het ORM gedeelte??
Op welke manier verzorgen jullie deze koppeling?