public void setData(Date data) {
this.data = data;
}
####no xhtml:
Data:
<h:message for=“data” errorClass=“error2” />
<h:inputText id=“data”
value="#{controlePatrimonio.patrimonio.data}" required=“true”
requiredMessage=" *POR FAVOR, INFORME A DATA ATUAL!" />
Ae na hr que cadastro lá … que insiro a data ele retorna como mensagem de erro…
/cadastroPatrimonio.xhtml @44,62 value="#{controlePatrimonio.patrimonio.data}": javax.faces.el.EvaluationException: Exception setting property data of base with class br.ce.cge.patrimonio.entidades.Patrimonio
eu tinha testado assim, mas voltou com o mesmo erro!
lá na entidade eu to importando a biblioteca java.sql.Date;
Data:
<h:message for=“data” errorClass=“error2” />
<h:inputText id=“data”
value="#{controlePatrimonio.patrimonio.data}" required=“true”
requiredMessage=" *POR FAVOR, INFORME A DATA ATUAL!">
<f:convertDateTime type=“date” pattern=“dd/MM/yyyy” />
</h:inputText>
J
JonathanSSantos
thiago_vf:
eu tinha testado assim, mas voltou com o mesmo erro!
lá na entidade eu to importando a biblioteca java.sql.Date;
<td>Data:<br/><h:messagefor="data"errorClass="error2"/></td><td><h:inputTextid="data"value="#{controlePatrimonio.patrimonio.data}"required="true"requiredMessage=" *POR FAVOR, INFORME A DATA ATUAL!"><f:convertDateTimetype="date"pattern="dd/MM/yyyy"/></h:inputText></td>
Testa soh assim
<f:convertDateTime pattern="dd/MM/yyyy" />
T
thiago_vf
pois eh…tb já testei soh assim…
:T
J
JonathanSSantos
Posta o codigo inteiro da tua pagina e do teu managedBean e poste ele em formato de codigo pra dar uma olhada!
T
thiago_vf
blz..esse primeiro eh a entidade..
packagebr.ce.cge.patrimonio.entidades;importjava.sql.Date;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistence.JoinColumn;importjavax.persistence.ManyToOne;importjavax.persistence.Table;@Entity@Table(name="patrimonio.tb_patrimonio")publicclassPatrimonio{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="isn_patrimonio")publicintid;@ManyToOne@JoinColumn(name="isn_produto",referencedColumnName="isn_produto")publicProdutoproduto;@Column(name="num_tombo")publicinttombo;@Column(name="dsc_serial")publicStringserial;@Column(name="isn_setor")publicStringsetor;@Column(name="isn_funcionario")publicintfuncionario;@Column(name="dth_data_atual")publicDatedata;@Column(name="dsc_nota_fiscal")publicStringnotaFiscal;@Column(name="dsc_observacao")publicStringobservacao;publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicProdutogetProduto(){returnproduto;}publicvoidsetProduto(Produtoproduto){this.produto=produto;}publicintgetTombo(){returntombo;}publicvoidsetTombo(inttombo){this.tombo=tombo;}publicStringgetSerial(){returnserial;}publicvoidsetSerial(Stringserial){this.serial=serial;}publicStringgetSetor(){returnsetor;}publicvoidsetSetor(Stringsetor){this.setor=setor;}publicintgetFuncionario(){returnfuncionario;}publicvoidsetFuncionario(intfuncionario){this.funcionario=funcionario;}publicDategetData(){returndata;}publicvoidsetData(Datedata){this.data=data;}publicStringgetNotaFiscal(){returnnotaFiscal;}publicvoidsetNotaFiscal(StringnotaFiscal){this.notaFiscal=notaFiscal;}publicStringgetObservacao(){returnobservacao;}publicvoidsetObservacao(Stringobservacao){this.observacao=observacao;}/*@OneToOne @JoinColumn(name="isn_situacao", referencedColumnName="isn_situacao") public Situacao situacao;*//*@ManyToOne @JoinColumn(name="isn_pessoa_juridica", referencedColumnName="usuario.tb_pessoa_juridica.isn_pessoa_juridica") public*/}
e por ultimo a view .. !
ainda tem a parte de repositório (quem se comunica com o banco) e a fábrica .. mas acho que esses dois nao sao necessarios..!
<ui:compositionxmlns="http://www.w3.org/1999/xhtml"xmlns:ui="http://java.sun.com/jsf/facelets"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"xmlns:c="http://java.sun.com/jstl/core"xmlns:t="http://myfaces.apache.org/tomahawk"xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"template="/templates/template.xhtml"><ui:definename="title">PatrimonioWeb</ui:define><ui:definename="body"><br/><h:form><h:dataTablevalue="#{controlePatrimonio.todos}"var="patrimonio"/><tableclass="formulario"><tr><tdclass="hed"colspan="2">InformeosdadosdoPatrimonio</td></tr><tr><td>Tombo:<br/><h:messagefor="tombo"errorClass="error2"/></td><td><h:inputTextid="tombo"type="text"value="#{controlePatrimonio.patrimonio.tombo}"required="true"requiredMessage=" *POR FAVOR, INFORME O TOMBO DO PRODUTO!"/></td></tr><tr><td>Serial:<br/><h:messagefor="serial"errorClass="error2"/></td><td><h:inputTextid="serial"type="text"value="#{controlePatrimonio.patrimonio.serial}"/></td></tr><tr><td>Setor:<br/><h:messagefor="setor"errorClass="error2"/></td><td><h:inputTextid="setor"type="text"value="#{controlePatrimonio.patrimonio.setor}"required="true"requiredMessage=" *POR FAVOR, INFORME O SETOR EM QUE O PRODUTO ESTÁ!"/></td></tr><tr><td>Data:<br/><h:messagefor="data"errorClass="error2"/></td><td><h:inputTextid="data"value="#{controlePatrimonio.patrimonio.data}"required="true"requiredMessage=" *POR FAVOR, INFORME A DATA ATUAL!"><f:convertDateTimetype="date"pattern="dd/MM/yyyy"/></h:inputText></td></tr><tr><td>Produto:</td><td><h:selectOneListboxid="nome"style="width: 135px"size="1"value="#{controlePatrimonio.aux}"><f:selectItemsvalue="#{controlePatrimonio.selectItems}"/></h:selectOneListbox><br/></td></tr><tr><td><h:commandButtonaction="#{controlePatrimonio.salvar}"value="Salvar"/></td></tr></table></h:form></ui:define></ui:composition>
valeu!!
J
JonathanSSantos
Está usando hibernate né??
Por um acaso não devia estar encima da tua coluna de data um
@Temporal(TemporalType.Date)
??
E você esta inserindo tbm o valor 11/11/2009 por exemplo? O valor informado está seguindo o correto né?
T
thiago_vf
tava faltando mesmo essa annotation só que ele da esse erro:
[color=red]Caused by: org.hibernate.AnnotationException: @Temporal should be set on a java.util.Date or java.util.Calendar property: br.ce.cge.patrimonio.entidades.Patrimonio.data[/color]
dei uma olhada aqui… mudei a biblioteca que ele importa de java.sql.date para java.util.date … ai ele passa a dar o erro dizendo que estorou o tamanho do campo …
[color=red]Caused by: javax.faces.el.EvaluationException: java.sql.SQLException: ERROR: numeric field overflow[/color=red]
J
JonathanSSantos
thiago_vf:
tava faltando mesmo essa annotation só que ele da esse erro:
[color=red]Caused by: org.hibernate.AnnotationException: @Temporal should be set on a java.util.Date or java.util.Calendar property: br.ce.cge.patrimonio.entidades.Patrimonio.data[/color]
dei uma olhada aqui… mudei a biblioteca que ele importa de java.sql.date para java.util.date … ai ele passa a dar o erro dizendo que estorou o tamanho do campo …
[color=red]Caused by: javax.faces.el.EvaluationException: java.sql.SQLException: ERROR: numeric field overflow[/color=red]
E no banco tu tem certeza que teu campo como do tipo date?
T
thiago_vf
Tenho sim, no banco ta
dth_data_atual date,
to usando o postgre
J
JonathanSSantos
Tenta debuga tua aplica;áo e ver o que ta acontecendo e onde ela ta dando o erro! onde que na tua aplicação esta dando esse erro!
é uma coisa que eu pensaria :thumbup:
T
thiago_vf
ok.
achei aqui que ele ta passando a data no formato completo, mesmo eu usando o convertDateTime
botei pra ele imprimir a data e ele passa assim Mon Dec 10 21:00:00 BRT 2012 quando eu queria que fosse soh assim 10/12/2012
T
thiago_vf
não existe um jeito de converter o formato já na entrada sem ter que criar um método no bean pra converter?
J
JonathanSSantos
Tenta colocar o dataPattern no lugar do dataStyle e roda…
nao me lembro se tinha um esquema assim
mais no meu rolava de boa antes
é que depois começei a usar o rich:Calendar e dai nem precisava em me preocupar com isso!! hehe
T
thiago_vf
Cara!!
o problema nao estava na data! hehehe
valeu a atençao … foi amadorismo meu. problema tava no formato de outro campo do banco … agora ta dando certo, inclusive o formato que eh inserido no postgre eh o dd/MM/yyyy
valeu!!
J
JonathanSSantos
De nada
Coloca resolvido no topico!
M
marcusco
Meus caros…
Estou com o mesmo problema…
Qual foi a solução adotada?
Marcus
M
marcusco
Como você converteu a data para o formato dd/MM/yyyy ?