Thanks for your help Gavin.
There's a manual flush right before the refresh() call:
public void save() {
| em.persist(selectedAccount);
| em.flush();
| selectedAccount = null;
| userAccounts.refresh();
| }
and the data does indeed get into the database. Here's the same log, this time
with SQL logging included:
WARN [org.jboss.seam.framework.EntityQuery] - before em.persist()
| Hibernate: select SEQ_ACCOUNT.nextval from dual
| WARN [org.jboss.seam.framework.EntityQuery] - before em.flush()
| Hibernate: insert into Account (CREATED_BY, CREATED_ON, MODIFIED_BY,
MODIFIED_ON, ACCOUNT_NUMBER, closed, DEALER_NAME, discretionary,
FAMILY_EXEMPTION, NAME_ON_STATEMENT, USER_ID, id) values (?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?)
| Hibernate: update USERS set MODIFIED_BY=?, MODIFIED_ON=?,
BLACKOUT_WINDOW=?, BUSINESS_UNIT=?, COVERAGE_REASON=?, DEPARTURE_DATE=?,
email=?, FULL_NAME=?, MANAGER_EMAIL=?, MANAGER_NAME=?, role=?, START_DATE=?,
status=?, TEMPLATE_ID=?, title=?, username=? where id=? and MODIFIED_ON=?
| WARN [org.jboss.seam.framework.EntityQuery] - before refresh()
| WARN [org.jboss.seam.framework.EntityQuery] - Entered refresh(), ejbql
FROM Account WHERE closed = false AND familyExemption = false AND user =
#{principal}, hashcode 10610605, list size 5
| WARN [org.jboss.seam.framework.EntityQuery] - Exited refresh(), ejbql FROM
Account WHERE closed = false AND familyExemption = false AND user =
#{principal}, hashcode 10610605, list size null
| WARN [org.jboss.seam.framework.EntityQuery] - after refresh()
| Where's the SQL select that refreshes list?
| WARN [org.jboss.seam.framework.EntityQuery] - Entered getResultList(),
ejbql FROM Account WHERE closed = false AND familyExemption = false AND user =
#{principal}, hashcode 10610605, list size 5
| WARN [org.jboss.seam.framework.EntityQuery] - Entered initResultList(),
ejbql FROM Account WHERE closed = false AND familyExemption = false AND user =
#{principal}, hashcode 10610605, list size 5
|
But that's not even what baffles me. If resultList was set to null, it would
have to be refreshed from the query. Now, where's the SELECT that refreshes the
list? As you see, no SQL SELECT is logged between the places where resultList
is null and where it's 5 items long again!
I'm suspecting that one of the interceptors resets the query state to what it
was before the save() call - but again, it must be doing it in a way that my
debugger doesn't catch. At least, the "variable modification" breakpoint in
Eclipse doesn't catch that update.
I'll try it with the after transaction event, to see if it makes any
difference, but still, it does look strange...
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4065879#4065879
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4065879
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user