Entity Search and Select
clerum May 8, 2009 4:09 AMI'm having a little bit of issue fitting the widgets together on this problem.
I have an Entity(TelephoneNumber) which I'm creating and I need associate 3 other existing entites on the creation page.
What I have so far is. Below. However I'm getting an
22:48:55,353 WARN [lifecycle] For input string: "BLNGMT - Billings, MT"
java.lang.NumberFormatException: For input string: "BLNGMT - Billings, MT"
It's passing the value of the suggestionBox rather than the entity. What is the correct way to do this? Can anyone post some sample code as I think this must be pretty common.
<s:decorate template="/layout/edit.xhtml">
<ui:define name="label">Site</ui:define>
<h:inputText value="#{telephoneNumber.site}" id="site" size="75" required="false" label="#{telephoneNumber.site.name}">
<s:convertEntity />
</h:inputText>
<rich:suggestionbox for="site" suggestionAction="#{siteUtil.searchSites}" var="_site" minChars="2" id="suggestion" width="500" selfRendered="true">
<h:column>
<h:outputText value="#{_site.name} - #{_site.alias}" />
</h:column>
</rich:suggestionbox>
</s:decorate>
@Entity
@Name("telephoneNumber")
@Table(name="telephone_number")
public class TelephoneNumber implements Serializable {
private static final long serialVersionUID = 1L;
private String number;
private Date date_created;
private Date date_modified;
private boolean e911;
private TNType type;
private TNStatus status;
private String cnam;
private String forward;
private Site site;
private RateCenter rateCenter;
private VoiceGroup voiceGroup;
@Id
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
@NotNull
public Date getDate_created() {
return date_created;
}
public void setDate_created(Date date_created) {
this.date_created = date_created;
}
@Version
public Date getDate_modified() {
return date_modified;
}
public void setDate_modified(Date date_modified) {
this.date_modified = date_modified;
}
@NotNull
public boolean isE911() {
return e911;
}
public void setE911(boolean e911) {
this.e911 = e911;
}
public TNType getType() {
return type;
}
public void setType(TNType type) {
this.type = type;
}
public TNStatus getStatus() {
return status;
}
public void setStatus(TNStatus status) {
this.status = status;
}
@Length(max=15)
public String getCnam() {
return cnam;
}
public void setCnam(String cnam) {
this.cnam = cnam;
}
public String getForward() {
return forward;
}
public void setForward(String forward) {
this.forward = forward;
}
@ManyToOne
@JoinColumn(name = "site_id", nullable = true)
public void setSite(Site site) {
this.site = site;
}
public Site getSite() {
return site;
}
@ManyToOne
@JoinColumn(name = "rate_center_id", nullable = true)
public RateCenter getRateCenter() {
return rateCenter;
}
public void setRateCenter(RateCenter rateCenter) {
this.rateCenter = rateCenter;
}
@ManyToOne
@JoinColumn(name = "voice_group_id", nullable = true)
public VoiceGroup getVoiceGroup() {
return voiceGroup;
}
public void setVoiceGroup(VoiceGroup voiceGroup) {
this.voiceGroup = voiceGroup;
}
}