This content has been marked as final.
Show 2 replies
-
1. Re: DataModel changes not reflected in view [possible newbie
pmuir Jan 13, 2008 5:27 AM (in response to giannidoe)Performing a search is clicking on a letter in the repeat?
Let's see how you persist an entity. -
2. Re: DataModel changes not reflected in view [possible newbie
giannidoe Jan 13, 2008 2:05 PM (in response to giannidoe)Yes clicking a letter (A-Z) on the repeat performs the search and then each row of the search results has an edit link which invokes editSite() on a conversation-scoped bean 'siteManager'.
@Stateful @Name("siteManager") public class WebsiteManagerBean implements WebsiteManager { @In(required = false) @Out(required = false) private Website website; @In private EntityManager entityManager; private boolean editMode; private boolean siteFound; @RequestParameter Integer id; public WebsiteManagerBean() { } @Begin public void editSite() { this.editMode = true; if (!findSite()) { facesMessages.addFromResourceBundle("website.not-found"); log.error("Website not found for id " + id); } } private boolean findSite() { if (id == null) { return false; } this.website = entityManager.find(Website.class, id); siteFound = (null != website) ? true : false; return siteFound; } //@RaiseEvent("websiteUpdated") public void updateSite() { facesMessages.addFromResourceBundle("website.updated"); log.info("Updated website details #{website.id}"); }
I'm not doing anything particular to persist the changes, clicking 'save' on the edit page invokes updateSite() and the modifications are flushed to the database. I then click a link to return to the search results.
Initially the search results do not contain the modifications as they are held in the session-scoped bean and I'm not yet updating that when updateSite() is invoked (hence the @RaiseEvent being commented out).
The thing perplexing me is that when I invoke the original search again it seems to query the database but the changes to the entity do not appear in the search results, even though they are present in the DataModel.