Master/Detail Problem
gzoller Mar 20, 2007 5:23 PMHello,
I am having trouble with a Master/Detail relationship between Project/Expense. I have a Project screen containing a list of expenses (<h:dataTable>) and a computed total expense (@Formula field in Project ).
* After adding a new expense I'm redirected back to Project.xhtml but my computed total expense value is wrong...its the old value--until I manually reload the page using the browser.
* Deleting an Expense always works great for some reason--calculated totals updated and display w/o crashing.
* If I edit an expense and redirect back to Project.xhtml sometimes the computed total value is correctly shown and other times I get a Hibernate exception like this:
15:52:17,327 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.paragon.spurs.model.Capex#11] at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1699) (clip)
I'm not sure if these are two issues are part of the same problem or not.
Do I need to invalidate objects in Project.xhtml when I redirect back so the read fresh from the db? (If so, how can I do that?)
Am I handling conversation scope right?
From Project.xhtml (initiate edit and create new Expense)
<s:button view="/CapexEdit.xhtml" id="capex" value="Edit" propagation="none"> <f:param name="projectProjectId" value="#{projectHome.instance.projectId}"/> <f:param name="capexCapexId" value="#{capex.capexId}"/> <f:param name="capexFrom" value="Project.xhtml"/> </s:button> <!-- SNIP! --> <s:button view="/CapexEdit.xhtml" value="Add Capex" propagation="begin"> <f:param name="projectProjectId" value="#{projectHome.instance.projectId}"/> <f:param name="capexFrom" value="Project.xhtml"/> <f:param name="capexCapexId"/> </s:button>
Lots more code--Let me know if it would help to see something in particular.
Thanks for any hints--getting a bit warped after several days not being able to get anywhere with this.
Greg