DataModel entries appearing twice
enrico256 May 16, 2007 11:13 AMI'm writing simple CRUD application that handles I'm writing simple CRUD application that handles "folders" and associated "items". The list of all folders is displayed on the home page as following:
<h:dataTable value="#{folders}" var="_folder"> <h:column> <f:facet name="header">Id</f:facet> <s:link action="#{folderFinder.selectFolder}" value="#{_folder.id}"/> </h:column> <h:column> <f:facet name="header">Title</f:facet> <h:outputText value="#{_folder.title}" /> </h:column> ? </h:dataTable>
"folders" are managed in a SFSB:
? @DataModel("folders") List<Folder> folders; @DataModelSelection @Out(required=false) Folder folder; @In(create=true) @Out(required=false) transient ItemFinder itemFinder; @Out(required=false) List<Item> item; @Factory("folders") public void refresh() { folders = em.createQuery("from Folder").getResultList(); } @Begin(join=true) public String selectFolder() { itemFinder.refresh(folder); //init "items" to contain items from this folder return "view_folder"; } ?
So far so good. My problem starts when I select a folder and display it with its items as every item appears twice in the dataTable! A folder is displayed as following :
<t:panelTabbedPane ? > <t:panelTab label="Folder"> <h:panelGrid columns="2"> <h:outputText value="Id"/> <h:outputText value="#{folder.id}"/> <h:outputText value="#Title"/> <h:outputText value="#{folder.title}"/> ? </h:panelGrid> </t:panelTab> <t:panelTab label="Items"> <h:dataTable value="#{items}" var="_item" > <h:column> <f:facet name="header">Item id</f:facet> <s:link action="#{itemFinder.selectItem}" value="#{_item.id}"/> </h:column> <h:column> <f:facet name="header">Type</f:facet> <h:outputText value="#{_item.type}" /> </h:column> ? </h:dataTable> </t:panelTab> </t:panelTabbedPane>
"itemFinder" is a SFSB the manages "items":
@DataModel("items") List<Item> items; @DataModelSelection @Out(required=false) Item item; public void refresh(Folder folder) { items = folder.getItems(); }
Needless to say the database contains only one copy of each item.
I?m using Seam 1.2.1, AS 4.0.5, MySQL 5.0 and mysql-connector-3.1.13.
I would appreciate if anybody could point me in the right direction.
Thanks in advance,
Enrico