Ola boa tarde,
estou com um problema que venho quebrando a cabeça faz alguns dias …
Quando quero inserir uma nova cidade no meu banco com hibernate eu preciso converter a classe estado, para que me retorne somente seu id…
Estudei sobre esse converte so que ja fiz de tudo e não consegui, ainda me retorna erro
segue os codigos
Classe Cidade
[code]
package com.sim.model;
// Generated 23/02/2013
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name=“cidade”)
/**
-
Cidade generated by hbm2java
*/
public class Cidade implements Serializable{private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name=“idCidade” , nullable=true)private Integer idCidade;
@ManyToOne
@JoinColumn(name=“ESTADO_idESTADO”)
private Estado estados;private String nome;
public Cidade() {
}public Integer getIdCidade() {
return idCidade;
}public void setIdCidade(Integer idCidade) {
this.idCidade = idCidade;
}public Estado getEstados() {
return estados;
}public void setEstados(Estado estados) {
this.estados = estados;
}public String getNome() {
return nome;
}public void setNome(String nome) {
this.nome = nome;
}@Override
public int hashCode() {
int hash = 5;
hash = 97 * hash + (this.idCidade != null ? this.idCidade.hashCode() : 0);
hash = 97 * hash + (this.estados != null ? this.estados.hashCode() : 0);
hash = 97 * hash + (this.nome != null ? this.nome.hashCode() : 0);
return hash;
}@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Cidade other = (Cidade) obj;
if (this.idCidade != other.idCidade && (this.idCidade == null || !this.idCidade.equals(other.idCidade))) {
return false;
}
if (this.estados != other.estados && (this.estados == null || !this.estados.equals(other.estados))) {
return false;
}
if ((this.nome == null) ? (other.nome != null) : !this.nome.equals(other.nome)) {
return false;
}
return true;
}[/code]
Classe Estado
[code]package com.sim.model;
// Generated 23/02/2013
import javax.persistence.*;
/**
- Estado generated by hbm2java
*/
@Entity
@Table(name=“estado”)
public class Estado implements java.io.Serializable {
private static final long serialVersionUID = 8787014459071770166L;
@Id
@GeneratedValue
@Column(name="idEstado")
private Integer idEstado;
private String nome;
private String uf;
public Estado() {
}
public Integer getIdEstado() {
return this.idEstado;
}
public void setIdEstado(Integer idEstado) {
this.idEstado = idEstado;
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getUf() {
return this.uf;
}
public void setUf(String uf) {
this.uf = uf;
}
@Override
public int hashCode() {
int hash = 5;
hash = 73 * hash + (this.idEstado != null ? this.idEstado.hashCode() : 0);
hash = 73 * hash + (this.nome != null ? this.nome.hashCode() : 0);
hash = 73 * hash + (this.uf != null ? this.uf.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Estado other = (Estado) obj;
if (this.idEstado != other.idEstado && (this.idEstado == null || !this.idEstado.equals(other.idEstado))) {
return false;
}
if ((this.nome == null) ? (other.nome != null) : !this.nome.equals(other.nome)) {
return false;
}
if ((this.uf == null) ? (other.uf != null) : !this.uf.equals(other.uf)) {
return false;
}
return true;
}
}[/code]
Converte
[code]
@FacesConverter(value = “EstadoConverter”, forClass=Estado.class)
public class EstadoConvert implements Converter{
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException{
if(value == null){
return null;
}
Integer id = Integer.valueOf(value);
return new EstadoDaoImpl().buscaEstadoid(id);
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object object)throws ConverterException {
if(object == null) {
return null;
}
return null;
}
}[/code]
View
[code]<h:form id=“frmNovaCidade”>
<p:dialog header="CADASTRO DE CIDADE" widgetVar="CadCidade" resizable="false" id="cadDlg" showEffect="fade" modal="true">
<p:growl id="growl" showDetail="true" sticky="true" />
<p:panelGrid id="NCidade" styleClass="semBorda" >
<p:row>
<p:column>
<h:outputLabel class="label" value="Nome" />
</p:column>
<p:column>
<p:inputText value="#{CidadeBean.cidade.nome}" size="50"/>
</p:column>
<!-- Selecione o Estado -->
<p:column>
<h:outputLabel class="label" value="Estado" />
</p:column>
<p:column>
<p:selectOneMenu value="#{CidadeBean.cidade.estados}" converter="EstadoConverter" label="Estado">
<f:selectItem itemValue="" itemLabel="NÃO INFORMADO" />
<f:selectItems value="#{EstadoBean.estados}" var="estados" itemLabel="#{estados.nome}" itemValue="#{estados}" />
</p:selectOneMenu>
</p:column>
</p:row>
<p:row>
<p:column colspan="4" style="text-align: right;">
<p:commandButton value="Salvar" update=":frmCidades, growl" actionListener="#{CidadeBean.salvar}" image="icon-salvar" style="width: 100px; height: 30px;" oncomplete="CadCidade.hide()" />
<p:commandButton value="Cancelar" update=":frmCidades, growl" image="icon-cancelar" style="width: 100px; height: 30px;" oncomplete="CadCidade.hide()" />
</p:column>
</p:row>
</p:panelGrid>
</p:dialog>
</h:form>
<!-- FIM formulario nova cidade--> [/code]
O erro que me retorna e esse
Advertência: For input string: "RIO DE JANEIRO"
java.lang.NumberFormatException: For input string: "RIO DE JANEIRO"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.valueOf(Integer.java:582)
at com.sim.convert.EstadoConvert.getAsObject(EstadoConvert.java:32)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:171)
Agradeço se alguem pode me ajudar…
