[forge-issues] [JBoss JIRA] (FORGE-797) Scaffolding @Embeddable

Antonio Goncalves (JIRA) issues at jboss.org
Mon Sep 22 09:19:02 EDT 2014


    [ https://issues.jboss.org/browse/FORGE-797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13004748#comment-13004748 ] 

Antonio Goncalves commented on FORGE-797:
-----------------------------------------

We are now able to create embeddables [FORGE-1398] in Forge 2.x. But the JSF scaffolding doesn't seem to work. Here is a script to create an embeddable, two entities and scaffolding JSF : 

{code}

project-new --named cdbookstore --topLevelPackage org.agoncal.training.javaee6adv --type war --finalName cdbookstore ;


jpa-setup --persistenceUnitName cdbookstorePU ;


jpa-new-embeddable --named Address ;
jpa-new-field --named street1 ;
jpa-new-field --named street2 ;
jpa-new-field --named city ;
jpa-new-field --named state ;
jpa-new-field --named zipcode --columnName zip_code ;
jpa-new-field --named country ;

constraint-add --onProperty street1 --constraint Size --min 5 --max 50 ;
constraint-add --onProperty street1 --constraint NotNull ;
constraint-add --onProperty city --constraint Size --min 2 --max 50 ;
constraint-add --onProperty city --constraint NotNull ;
constraint-add --onProperty zipcode --constraint Size --min 1 --max 10 ;
constraint-add --onProperty zipcode --constraint NotNull ;
constraint-add --onProperty country --constraint Size --min 2 --max 50 ;
constraint-add --onProperty country --constraint NotNull ;


jpa-new-entity --named Customer ;
jpa-new-field --named firstname --columnName first_name ;
jpa-new-field --named lastname --columnName last_name ;
jpa-new-field --named telephone ;
jpa-new-field --named email ;
jpa-new-field --named dateOfBirth --type java.util.Date --columnName date_of_birth ;
jpa-new-field --named age --type int --transient
jpa-new-field --named homeAddress --type org.agoncal.training.javaee6adv.model.Address --relationshipType Embedded ;

constraint-add --onProperty firstname --constraint Size --min 2 --max 50 ;
constraint-add --onProperty firstname --constraint NotNull ;
constraint-add --onProperty lastname --constraint Size --min 2 --max 50 ;
constraint-add --onProperty lastname --constraint NotNull ;
constraint-add --onProperty dateOfBirth --constraint Past ;


jpa-new-entity --named PurchaseOrder ;
jpa-new-field --named quantity --type int ;
jpa-new-field --named orderDate --type java.util.Date --columnName order_date ;
jpa-new-field --named deliveryAddress --type org.agoncal.training.javaee6adv.model.Address --relationshipType Embedded ;


scaffold-generate --webRoot /admin --targets org.agoncal.training.javaee6adv.model.Customer
scaffold-generate --webRoot /admin --targets org.agoncal.training.javaee6adv.model.PurchaseOrder
{code}

Once the scaffolding is done, the JSF page looks like this :

{code}
				<h:outputLabel value="Home Address:"/>
				<h:panelGroup>
					<h:commandLink action="#{customerBean.customer.newHomeAddress}" rendered="#{empty customerBean.customer.homeAddress}" value="Create New Home Address"/>
					<h:panelGrid columnClasses="label,component,required" columns="3" rendered="#{!empty customerBean.customer.homeAddress}">
						<h:outputLabel for="customerBeanCustomerHomeAddressStreet1" value="Street 1:"/>
						<h:panelGroup>
							<h:inputText id="customerBeanCustomerHomeAddressStreet1" maxLength="50" required="true" value="#{customerBean.customer.homeAddress.street1}"/>
							<h:message for="customerBeanCustomerHomeAddressStreet1" styleClass="error"/>
						</h:panelGroup>

{code}

It creates a {{h:commandLink}} with {{newHomeAddress}} just like a one to one relationship. It shouldn't have this link and the embeddable should just be treated like attributes of the entity.

> Scaffolding @Embeddable
> -----------------------
>
>                 Key: FORGE-797
>                 URL: https://issues.jboss.org/browse/FORGE-797
>             Project: Forge
>          Issue Type: Feature Request
>          Components: Scaffold
>    Affects Versions: 1.2.1.Final
>         Environment: win 7, java 1.6_30, AS 7.1.1, JPA 2, Hibernate 4.1.7.Final
>            Reporter: Michael Koitz
>             Fix For: 2.x Future
>
>
> Scaffolding should take the JPA2 annotations @Embeddable and @Embedded into account.



--
This message was sent by Atlassian JIRA
(v6.3.1#6329)


More information about the forge-issues mailing list