Eén van de meest redundante zaken aan Struts zijn zonder twijfel de ActionForms waardoor eigenlijk het originele MVC omgebuigd worden in MVFC (model/view/(action)form/controller). Nu, omdat dit ook door de Struts ontwikkelaars als extra overhead aanzien werd, werden de DynaActionForms
tot leven geroepen. Waar ik dan ook zoveel mogelijk mee probeer te werken.
Het probleem dat ik heb, zit hem niet zozeer in de ActionForms, maar eerder in de combinatie Struts & Hibernate. In de formulieren in mijn web-applicatie, kunnen de gebruikers deze formulieren opstellen door het selecteren van een aantal waarden in drop-down boxen. De waarde die hier gekozen wordt, is natuurlijk niet het object zelf.. maar simpelweg een domme ID representatie
.
In de Hibernate mapping files, liggen de many-to-one relaties wel goed. Maar deze relaties zijn gebaseerd op objecten, niet op ID Strings.
Welke stappen nemen jullie om deze ID Strings om te vormen tot volledige objecten?
De manier die ik nu gebruik is de volgende:
* Gebruiker submit het formulier.
* Het formulier komt binnen in mijn Struts action; ik lees al deze velden uit en voor de geselecteerde ID's haal ik eerst de objecten op uit de relationele DB (dus telkens met een get(ID)).
* Als ik deze objecten terugkrijg, link ik deze aan het hoofd-object en stuur ik dit object naar de DAO (waarna het object gesaved wordt).
De aanpak die ik hier gebruik, vereist dan wel verschillende keren een call naar de DB alvorens het échte object gepersisteerd kan worden.
Nu heb ik deze aanpak weer eens gebruikt; maar bekom nu volgende exception:
Graag had ik jullie ervaringen gehoord ivm deze manier van aanpakken. En eventueel op welke manier ik de vorige exception kan vermijden
?
Het probleem dat ik heb, zit hem niet zozeer in de ActionForms, maar eerder in de combinatie Struts & Hibernate. In de formulieren in mijn web-applicatie, kunnen de gebruikers deze formulieren opstellen door het selecteren van een aantal waarden in drop-down boxen. De waarde die hier gekozen wordt, is natuurlijk niet het object zelf.. maar simpelweg een domme ID representatie
In de Hibernate mapping files, liggen de many-to-one relaties wel goed. Maar deze relaties zijn gebaseerd op objecten, niet op ID Strings.
Welke stappen nemen jullie om deze ID Strings om te vormen tot volledige objecten?
De manier die ik nu gebruik is de volgende:
* Gebruiker submit het formulier.
* Het formulier komt binnen in mijn Struts action; ik lees al deze velden uit en voor de geselecteerde ID's haal ik eerst de objecten op uit de relationele DB (dus telkens met een get(ID)).
* Als ik deze objecten terugkrijg, link ik deze aan het hoofd-object en stuur ik dit object naar de DAO (waarna het object gesaved wordt).
De aanpak die ik hier gebruik, vereist dan wel verschillende keren een call naar de DB alvorens het échte object gepersisteerd kan worden.
Nu heb ik deze aanpak weer eens gebruikt; maar bekom nu volgende exception:
NonUniqueObjectException: a different object with the same identifier value was already associated with the session
Graag had ik jullie ervaringen gehoord ivm deze manier van aanpakken. En eventueel op welke manier ik de vorige exception kan vermijden