Ir para conteúdo

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 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?
    • Por ckcesar
      Eu tenho uma aplicação no zend com a versão 5.6 e com o postgresql 9.6. Agora eu precisei mudar a versão do meu postgresql para o 16.1, a parte de conexão do bd e consultas sqls funciona perfeitamente, o meu problema está para acessar os meus controllers. Eles não são encontrados em nenhuma rota, quero ver se alguém já passou por esse problema para me ajudar. Obrigado.
    • Por Jack Oliveira
      Ola pessoal boa tarde
      estou tentando fazer um texto se mover dentro do input porem nao esta dando resultado que preciso
       
      Este é o codigo 
      <script type="text/javascript"> $(document).ready(function () { var frases = [{ 'elemento': $('input[name=search_string]'), 'frases': ["O que você está procurando?", "Buscar por: Academia, Barbearia, Churrascaria, Decoração, Escola, Farmácia, Gráfica, Imobiliaria, Lanchonete, Mecânica, Odontologia, Pizzaria...", "Faça sua busca por segmentos aqui.", "São mais de 3mil empresas para serem exploradas."] }]; animaInput(frases); }); </script>  
    • Por Rengavitp
      Boa noite pessoal!
       
      Estou fazendo um projeto web com spring boot e é a primeira vez que lido com imagens. Minha idéia é salvar imagens em uma pasta e depois recuperar essa imagem e mostrar, mas o problema que estou enfrentando é o seguinte, seu eu envio para o src do projeto na pasta imagens, eu até consigo acessar as imagens, mas preciso atualizar o projeto na IDE (isso vai acontecer em produção?) eu tentei salvar em uma pasta fora do source do projeto mas ai não consigo acessar. como devo fazer? fiz várias pesquisas, mas nenhuma me ajudou.
       
      Desde já agradeço.
    • Por Rengavitp
      Bom dia pessoal!

      Estou com o seguinte problema, tenho uma aplicação que funciona perfeitamente rodando na minha IDE (Spring Tool Suite) mas ao gerar o arquivo war e subir a aplicação no tom cat ele não funciona, mas apenas erro 404, abri o war e todos os arquivo estão lá, já tem seguir tudo quando e tutorial com problemas semelhantes mas nenhum resolveu. Abaixo mais informações,.

      Versão do java na aplicacao 11
      Versão do jva no servidor 11
      Versão do tomcat no servidor 8.5.55
       
      minha classe principal
      package br.com.masterplastfitas; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class MasterApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MasterApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MasterApplication.class); } } meu pom.xml
      <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.2</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>masterplast</groupId> <artifactId>Master</artifactId> <version>2.0</version> <packaging>war</packaging> <name>Master</name> <description>Aplicação web </description> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity5</artifactId> </dependency> <dependency> <groupId>org.mindrot</groupId> <artifactId>jbcrypt</artifactId> <version>0.4</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.0</version> </dependency> </dependencies> <build> <plugins> <!-- <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> --> </plugins> </build> </project>  
×

Informação importante

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