Persistência data JPA

Olá galera, não estou conseguindo recuperar uma data do MySql do tipo DATETIME, na minha classe tenho uma variável mapeada assim:

@Temporal(value=TemporalType.TIMESTAMP)
private Date dateAndTime;

Consigo salvar sem problemas no formato: ‘yyyy-MM-dd HH:mm:ss’. Estou usando este campo para salvar a data de criação do objeto, ai começa o problema pois as vezes é necessário editar o nome do objeto por exemplo mas não quero alterar a data de criação dele.

Sendo assim, eu tenho uma tela onde visualizo os dados e tenho botão pra editar, quando vou editar estou passando o objeto que está na sessão para a tela de edição, mas quando tento salvar a alteração o ocorre um erro direto no faces, algo assim:

Não é possível converter a data '2010-05-02 08:22:22.0' para "Converter null"

Não entendi por que vem aquele .0 no final e por que está ocorrendo este erro.

troca para

@Temporal(TemporalType.DATE)

e veja se persiste o erro

Seu atributo date é de qual tipo date?

Como você está utilizando ele no na tela?

Como está a coluna do banco de dados?

O .0 parece que está lá porque vc colocou como timestamp e ele deve estar colocando valores de milissegundos.

É do tipo Date. Formatei ele usando um SimpleDateFormat para gravar no BD.

O meu getData retornar um objeto do tipo Date, exibo este Date na tela mesmo.

A coluna está como DATETIME.

[quote=andre.froes]troca para

@Temporal(TemporalType.DATE)

e veja se persiste o erro[/quote]
Mas eu preciso da Data e Hora "/

Pode ser isso, pois quando o campo DATETIME é lido do banco e é populado no objeto mapeado como TIMESTAMP, ele converte a data para milisegundos. O que fazer então? Tratar o getData para fazer a conversão de TIMESTAMP pra DATE?

Tentei alterar o campo para Date somente, na classe e na tabela mas ocorre o mesmo erro ainda.

Tipo, eu consigo salvar certo o objeto mas quando tento alterar outro atributo que não a data, ocorre o erro.

Depois que fiz esta gambiarra funcionou, porém toda vez que edito o registro a data diminui um dia…muaaaaaaaaaaaaa

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                template="/resources/template.xhtml"
				xmlns="http://www.w3.org/1999/xhtml"
				xmlns:h="http://java.sun.com/jsf/html"
				xmlns:p="http://primefaces.org/ui"
				xmlns:f="http://java.sun.com/jsf/core">

    <ui:define name="Conteudo">
		<h:form prependId="false">
			<p:growl id="growl" showDetail="true" globalOnly="true"/>
			<p:panel header="Editar Categoria Serviço">
				<p:messages autoUpdate="true"/>
				<h:inputHidden value="#{categoriaServicoMB.categoriaServico.idCategoriaServico}"/>
				<h:inputHidden value="#{categoriaServicoMB.categoriaServico.dataCriacao}">
					<f:convertDateTime pattern="yyyy-MM-dd"/>
				</h:inputHidden>
				
				
				<p:panelGrid columns="3">
					<h:outputLabel styleClass="labelForm" value="*Nome: " for="nome"/>
					<p:inputText
						id="Nome"
						value="#{categoriaServicoMB.categoriaServico.nomeCategoria}"
						required="true"
						size="30">
						<f:validateLength minimum="3" maximum="30"/>
					</p:inputText>
					
					
				</p:panelGrid>

				<h:outputText styleClass="campoObrigatorio" value="(*)Campos de preenchimento obrigatório."/>
				<p:panel style="text-align: center" collapsed="2">
					<p:commandButton value="Salvar" action="#{categoriaServicoMB.atualizar}"/>
					<p:commandButton value="Cancelar" type="reset"/>
				</p:panel>
			</p:panel>


		</h:form>
    </ui:define>
</ui:composition>