Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

manoveio1

Hibernate nao atualiza a data e a hora automaticamente no banco postgres

Recommended Posts

Estou desenvolvendo um sisteminha em, pra fins de conhecimento. Estou usando eclipse, photon ,postgres, hibernate, maven e primefaces. Ele está gravando os dados normalmente no banco de dados. A data e hora ele esta pegando automaticamente do sistema. Até ai esta blz. O problema está qdo atualizo os dados, a data e a hora nao estao atualizando, porem outros dados estao.
Segue os dados:

meu domain:

package br.pro.silvio.prati.domain;

    import java.util.Date;

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Temporal;
    import javax.persistence.TemporalType;

    @SuppressWarnings("serial")
    @Entity
    public class Area extends GenericDomain {
    	
    	@Column(name = "nome",length =20, nullable = false)
    	private String nome;
    	@Column( name = "status",length =10)
    	private String status;
    	@Column(name = "cadpor",length =20)
    	private String cadpor;
    	@Column(name ="datcad")
    	@Temporal(TemporalType.DATE)
    	private Date datcad = new java.sql.Date(System.currentTimeMillis());
    	@Column(name = "hora")
    	@Temporal(TemporalType.TIME)
    	private Date hora =new java.sql.Date(System.currentTimeMillis());

    	public String getNome() {
    		return nome;
    	}
    	public void setNome(String nome) {
    		this.nome = nome;
    	}
    	public String getStatus() {
    		return status;
    	}
    	public void setStatus(String status) {
    		this.status = status;
    	}
    	public String getCadpor() {
    		`return cadpor;`
    	}
    	public void setCadpor(String cadpor) {
    		this.cadpor = cadpor;
    	}
    	public Date getDatcad() {
    		return datcad;
    	}
    	public void setDatcad(Date datcad) {
    		this.datcad = datcad;
    	}
    	public Date getHora() {
    		return hora;
    	}
    	public void setHora(Date hora) {
    		this.hora = hora;
    	}
    	
    	 	
    	
    }

meu dao generico:

package br.pro.silvio.prati.dao;

import java.lang.reflect.ParameterizedType;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;

import br.pro.silvio.prati.util.HibernateUtil;

public class GenericDAO<Entidade> {
	private Class<Entidade> classe;

	@SuppressWarnings("unchecked")
	public GenericDAO() {
		this.classe = (Class<Entidade>) ((ParameterizedType) getClass().getGenericSuperclass())
				.getActualTypeArguments()[0];
	}

	public void salvar(Entidade entidade) {
		Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
		Transaction transacao = null;

		try {
			transacao = sessao.beginTransaction();
			sessao.save(entidade);
			transacao.commit();
		} catch (RuntimeException erro) {
			if (transacao != null) {
				transacao.rollback();
			}
			throw erro;
		} finally {
			sessao.close();
		}
	}

	@SuppressWarnings("unchecked")
	public List<Entidade> listar() {
		Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
		try {
			Criteria consulta = sessao.createCriteria(classe);
			List<Entidade> resultado = consulta.list();
			return resultado;
		} catch (RuntimeException erro) {
			throw erro;
		} finally {
			sessao.close();
		}
	}
	
	@SuppressWarnings("unchecked")
	public Entidade buscar(Long codigo) {
		Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
		try {
			Criteria consulta = sessao.createCriteria(classe);
			consulta.add(Restrictions.idEq(codigo));
			Entidade resultado = (Entidade) consulta.uniqueResult();
			return resultado;
		} catch (RuntimeException erro) {
			throw erro;
		} finally {
			sessao.close();
		}
	}
	
	public void excluir(Entidade entidade) {
		Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
		Transaction transacao = null;

		try {
			transacao = sessao.beginTransaction();
			sessao.delete(entidade);
			transacao.commit();
		} catch (RuntimeException erro) {
			if (transacao != null) {
				transacao.rollback();
			}
			throw erro;
		} finally {
			sessao.close();
		}
	}
	
	public void editar(Entidade entidade) {
		Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
		Transaction transacao = null;

		try {
			transacao = sessao.beginTransaction();
			sessao.update(entidade);
			transacao.commit();
		} catch (RuntimeException erro) {
			if (transacao != null) {
				transacao.rollback();
			}
			throw erro;
		} finally {
			sessao.close();
		}
	}
	
	public void merge(Entidade entidade) {
		Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
		Transaction transacao = null;

		try {
			transacao = sessao.beginTransaction();
			sessao.merge(entidade);
			transacao.commit();
		} catch (RuntimeException erro) {
			if (transacao != null) {
				transacao.rollback();
			}
			throw erro;
		} finally {
			sessao.close();
		}
	}
}

meu dao:

package br.pro.silvio.prati.dao;

import br.pro.silvio.prati.domain.Area;

public class AreaDAO extends GenericDAO<Area>{
	

}

meu bean:

package br.pro.silvio.prati.bean;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;

import org.omnifaces.util.Messages;

import br.pro.silvio.prati.dao.AreaDAO;
import br.pro.silvio.prati.domain.Area;

@SuppressWarnings("serial")
@ManagedBean
@ViewScoped
public class AreaBean implements Serializable {
	private Area area;
	private List<Area> areas;

	public Area getArea() {
		return area;
	}

	public void setArea(Area area) {
		this.area = area;
	}

	public List<Area> getAreas() {
		return areas;
	}

	public void setAreas(List<Area> areas) {
		this.areas = areas;
	}

	@PostConstruct
	public void listar() {
		try {
			AreaDAO areaDAO = new AreaDAO();
			areas = areaDAO.listar();
		} catch (RuntimeException erro) {
			Messages.addGlobalError("Ocorreu um erro ao tentar listar as AREAS");
			erro.printStackTrace();
		}
	}

	public void novo() {
		area = new Area();
	}

	public void salvar() {
		try {
			AreaDAO areaDAO = new AreaDAO();
			areaDAO.merge(area);

			novo();
			areas = areaDAO.listar();

			Messages.addGlobalInfo("Area salvo com sucesso");
		} catch (RuntimeException erro) {
			Messages.addGlobalError("Ocorreu um erro ao tentar salvar a AREA");
			erro.printStackTrace();
		}
	}
	public void excluir(ActionEvent evento) {
		try {
			area = (Area) evento.getComponent().getAttributes().get("areaSelecionado");

			AreaDAO areaDAO = new AreaDAO();
			areaDAO.excluir(area);
			
			areas = areaDAO.listar();

			Messages.addGlobalInfo("Estado removido com sucesso");
		} catch (RuntimeException erro) {
			Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o estado");
			erro.printStackTrace();
		}
	}
	
	public void editar(ActionEvent evento){
		area = (Area) evento.getComponent().getAttributes().get("areaSelecionado");
	}

}

meu xhtml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://xmlns.jcp.org/jsf/html"
	xmlns:f="http://xmlns.jcp.org/jsf/core"
	xmlns:p="http://primefaces.org/ui">
<h:head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title>Are</title>
</h:head>
<h:body>
	<p:growl id="mensagem" />

	<h:form id="formListagem">
		<p:panel header="AREA - Listagem">
			<p:dataTable id="tabela" emptyMessage="Nenhum registro encontrado."
				paginator="true" value="#{areaBean.areas}" var="item" rows="8">
				<f:facet name="header">
					<p:commandButton value="Novo" oncomplete="PF('dialogo').show();"
						actionListener="#{areaBean.novo}" update=":formCadastro:painel">
						<f:actionListener
							type="org.omnifaces.eventlistener.ResetInputAjaxActionListener" />
					</p:commandButton>
				</f:facet>

				<p:column headerText="Código" sortBy="#{item.codigo}"
					filterBy="#{item.codigo}">
					<h:outputText value="#{item.codigo}" />
				</p:column>
				<p:column headerText="Descricao" sortBy="#{item.nome}"
					filterBy="#{item.nome}">
					<h:outputText value="#{item.nome}" />
				</p:column>
				<p:column headerText="Status" sortBy="#{item.status}"
					filterBy="#{item.status}">
					<h:outputText value="#{item.status}" />
				</p:column>

				<p:column headerText="Cadastrado por" sortBy="#{item.cadpor}"
					filterBy="#{item.cadpor}">
					<h:outputText value="#{item.cadpor}" />
				</p:column>

				<p:column headerText="Data" sortBy="#{item.datcad}"
					filterBy="#{item.datcad}">
					<h:outputText value="#{item.datcad}">
					<f:convertDateTime locale="pt_BR" />
					</h:outputText>

				</p:column>
				<p:column headerText="Hora">
					<h:outputText value="#{item.hora}" />
				</p:column>
				<p:column headerText="Opções">
					<p:commandButton icon="ui-icon-trash"
						actionListener="#{areaBean.excluir}"
						update=":mensagem :formListagem:tabela">
						<p:confirm header="Confirmação" message="Deseja excluir 'AREA'?"
							icon="ui-icon-alert" />
						<f:attribute name="areaSelecionado" value="#{item}" />
					</p:commandButton>

					<p:commandButton icon="ui-icon-pencil"
						actionListener="#{areaBean.editar}" update=":formCadastro:painel"
						oncomplete="PF('dialogo').show();">
						<f:attribute name="areaSelecionado" value="#{item}" />
						<f:actionListener
							type="org.omnifaces.eventlistener.ResetInputAjaxActionListener" />
					</p:commandButton>

				</p:column>
			</p:dataTable>

			<p:confirmDialog global="true" showEffect="fade" hideEffect="fade">
				<p:commandButton value="Sim" type="button"
					styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
				<p:commandButton value="Não" type="button"
					styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
			</p:confirmDialog>
		</p:panel>
	</h:form>

	<p:dialog header="AREA - Cadastro" widgetVar="dialogo"
		draggable="false" resizable="false" modal="true" closable="false">

		<h:form id="formCadastro">

			<h:panelGrid id="painel" columns="2">

				<p:outputLabel value="Descrição:" />
				<p:inputText maxlength="30" size="20" value="#{areaBean.area.nome}"
					required="true" requiredMessage="O campo Descricao é obrigatório!" />

				<p:outputLabel value="Situação:" />
				<p:selectOneMenu value="#{areaBean.area.status}" required="true"
					requiredMessage="O campo Situacao é obrigatório!">
					<f:selectItem itemValue="" itemLabel="Selecione.." />
					<f:selectItem itemValue="Ativo" itemLabel="Ativo" />
					<f:selectItem itemValue="Inativo" itemLabel="Inativo" />
				</p:selectOneMenu>
			</h:panelGrid>

			<h:panelGrid columns="2">
				<p:commandButton value="Salvar" actionListener="#{areaBean.salvar}"
					update=":mensagem :formCadastro:painel :formListagem:tabela" />
				<p:commandButton value="Fechar" oncomplete="PF('dialogo').hide();" />
			</h:panelGrid>
		</h:form>
	</p:dialog>
</h:body>
</html>

ele grava de boa a data e a hora , mas quando é pra atualizar, só atualiza outros campos mas não a data e a hora. o que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Estou escrevendo um Sistema Java Web e quando clico no Botão Salvar, o Java acusa esse erro:

      ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null
       
      Já tentei de várias formas resolver esse problema, mas não estou conseguindo.

      Por favor, alguém pode me ajudar identificar a origem e resolver o problema acima ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou enfrentando um problema que não consigo entender.

      Após Instalar o MySql versão 8.0.36, funciona corretamente realizando as conexões.

      O problema é:
      ---[ após reiniciar o micro, o MySql não faz as conexões.
      --[ tenta localizar este arquivo, mas não acha: my.ini
       
      Onde localizo ou configuro este arquivo na Pasta MySql ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, preciso de ajuda em Relação a Instalar o Jasper Reports no Eclipse, pois a opção de Eclipse Marketplace, não encontra para instalar.
       
      Já tentei de todas as formas mas não consegui, alguém conhece alguma rotina explicando este procedimento ?
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amantes da informática.
       
      Saudações.
       
      Estou usando o Eclipse Mars versão 4.5.0  e o 4.5.2, acredito que deva ter versões mais novas. 
      Sou novato em JAVA e estou encontrando alguns problema em Instalação de alguns plugins, como por exemplo:
       
      1) quando tento instalar o JBoss Tools através do Eclipse Marteplace, o Eclipse não o encontra na lista de plugins.
      2) se tento instalar através do Install New Software, abaixa alguns arquivos, mas também não instala o JBoss.
      3) se abro o site e arrasto o download para a área de trabalho do Eclipse, também não instala o JBoss.
       
      Caros amigos, existe outra alguma forma de instalar o JBoss Tools no Eclipse e como seria ?
       
      Grato,
       
      Cesar
       
       
    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.