[jboss-user] [JBoss Seam] - seam-gen code for many-to-one associations and reference dat
lawrieg
do-not-reply at jboss.com
Wed Feb 14 11:32:08 EST 2007
Hi,
I'm trying to understand the seam-generated code for many-to-one associations, and whether / how I need to modify it if I'm dealing with reference data that either is read-only (i.e. will be an Enum and will have matching database lookup table), or modified only very occasionally by an administrator (will be a class mapped to a database lookup/reference table).
seam-gen generates the following Seam Application Framework EntityHome code for my example project's Customer class:
@Name("customerHome")
| public class CustomerHome extends EntityHome<Customer> {
|
| @In(value = "#{statusHome.managedInstance}", required = false)
| Status status;
|
| @In(value = "#{customerTypeHome.managedInstance}", required = false)
| CustomerType customerType;
|
| public void setCustomerId(Integer id) {
| setId(id);
| }
|
| public Integer getCustomerId() {
| return (Integer) getId();
| }
|
| @Override
| protected Customer createInstance() {
| Customer customer = new Customer();
| return customer;
| }
|
| public void wire() {
| if (status != null) {
| getInstance().setStatus(status);
| }
| if (customerType != null) {
| getInstance().setCustomerType(customerType);
| }
| }
|
| public boolean isWired() {
| if (getInstance().getStatus() == null)
| return false;
| if (getInstance().getCustomerType() == null)
| return false;
| return true;
| }
|
| public Customer getManagedInstance() {
| return isManaged() ? getInstance() : null;
| }
|
| }
and CustomerEdit.page.xml is generated as follows
<page no-conversation-view-id="/CustomerList.xhtml">
|
| <restrict>#{identity.loggedIn}</restrict>
|
| <begin-conversation join="true"/>
|
| <action execute="#{customerHome.wire}"/>
|
| <param name="customerFrom"/>
| <param name="customerId" value="#{customerHome.customerId}"/>
|
| <param name="statusFrom"/>
| <param name="statusId" value="#{statusHome.statusId}"/>
|
| <param name="customerTypeFrom"/>
| <param name="customerTypeId" value="#{customerTypeHome.customerTypeId}"/>
|
| <navigation from-action="#{customerHome.persist}">
| <end-conversation/>
| <redirect view-id="/Customer.xhtml"/>
| </navigation>
|
| <navigation from-action="#{customerHome.update}">
| <end-conversation/>
| <redirect view-id="/Customer.xhtml"/>
| </navigation>
|
| <navigation from-action="#{customerHome.remove}">
| <end-conversation/>
| <redirect view-id="/CustomerList.xhtml"/>
| </navigation>
|
| </page>
So if I want Status to be an Enum, and CustomerType to be an immutable class that will be mapped to a database lookup/reference table, then what changes should I make to the seam-gen code???
I particular, I'm confused by the need for the wire() and isWired() methods - can anyone shed any light on what they are for and whether I'll still need them?
Thanks,
Lawrie
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4016451#4016451
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4016451
More information about the jboss-user
mailing list