Não insere o registro e não retorna nenhum erro [hibernateJPA]

11 respostas
Z

Olá a todos.
Fiz uma view para incluir o registro em uma tabela chamada Usuário. Todas as outras views estão funcionando, apenas essa que não. E eu estou usando a mesma codificação.
Já olhei método por método aqui e não consegui encontrar nada de errado.

Alguém saberia me dizer onde estou errado??
Só um detalhe, se eu insiro o registro direto no banco a view exibe o registro na datatable e eu também consigo excluir.
Só alterar e incluir que não consigo.

Muito obrigado desde já!!

Usuario.java

package br.com.unip.menudroidweb.model;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


@Entity
@Table(name="usuario")
public class Usuario implements Serializable {
	private static final long serialVersionUID = 8179739667472414271L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	private int idUsuario;

	@Column(nullable=false, length=50)
	private String abreviacao;

    @Temporal( TemporalType.TIMESTAMP)
	private Date dataNascimento;

	@Column(nullable=false, length=100)
	private String nome;

	@Column(nullable=false, length=6)
	private String senha;

    public Usuario() {
    }

	public int getIdUsuario() {
		return this.idUsuario;
	}

	public void setIdUsuario(int idUsuario) {
		this.idUsuario = idUsuario;
	}

	public String getAbreviacao() {
		return this.abreviacao;
	}

	public void setAbreviacao(String abreviacao) {
		this.abreviacao = abreviacao;
	}

	public Date getDataNascimento() {
		return this.dataNascimento;
	}

	public void setDataNascimento(Date dataNascimento) {
		this.dataNascimento = dataNascimento;
	}

	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getSenha() {
		return this.senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

}

UsuarioFacade.java

package br.com.unip.menudroidweb.facade;

import java.io.Serializable;
import java.util.List;
import br.com.unip.menudroidweb.model.Usuario;
import br.com.unip.menudroidweb.dao.UsuarioDAO;

public class UsuarioFacade implements Serializable {
	private static final long serialVersionUID = -7914066672489151023L;
	private UsuarioDAO usuarioDAO = new UsuarioDAO();

	public void createUsuario(Usuario usuario) {
		usuarioDAO.beginTransaction();
		usuarioDAO.save(usuario);
		usuarioDAO.commitAndCloseTransaction();
	}

	public void updateUsuario(Usuario usuario) {
		usuarioDAO.beginTransaction();
		Usuario persistedUsuario = usuarioDAO.find(usuario.getIdUsuario());
		persistedUsuario.setNome(usuario.getNome());
		persistedUsuario.setAbreviacao(usuario.getAbreviacao());
		persistedUsuario.setSenha(usuario.getSenha());
		persistedUsuario.setDataNascimento(usuario.getDataNascimento());
		usuarioDAO.update(persistedUsuario);
		usuarioDAO.commitAndCloseTransaction();
	}

	public Usuario findUsuario(int usuarioId) {
		usuarioDAO.beginTransaction();
		Usuario usuario = usuarioDAO.find(usuarioId);
		usuarioDAO.closeTransaction();
		return usuario;
	}

	public List<Usuario> listAll() {
		usuarioDAO.beginTransaction();
		List<Usuario> usuario = usuarioDAO.findAll();
		usuarioDAO.closeTransaction();
		return usuario;
	}

	public void deleteUsuario(Usuario usuario) {
		usuarioDAO.beginTransaction();
		Usuario persistedUsuario = usuarioDAO.findReferenceOnly(usuario.getIdUsuario());
		usuarioDAO.delete(persistedUsuario);
		usuarioDAO.commitAndCloseTransaction();
	}
}
UsuarioBean.java
package br.com.unip.menudroidweb.bean;

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

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.unip.menudroidweb.facade.UsuarioFacade;
import br.com.unip.menudroidweb.model.Usuario;

@ViewScoped
@ManagedBean (name = "usuarioBean")
public class UsuarioBean extends AbstractBean implements Serializable {
	private static final long serialVersionUID = 2489049544264858442L;
	
	private Usuario usuario;
	private List<Usuario> usuarioLista;
	private UsuarioFacade usuarioFacade;

	public UsuarioFacade getUsuarioFacade() {
		if (usuarioFacade == null) {
			usuarioFacade = new UsuarioFacade();
		}

		return usuarioFacade;
	}

	public Usuario getUsuario() {
		if (usuario == null) {
			usuario = new Usuario();
		}

		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
	public void createUsuario() {
		try {
			getUsuarioFacade().createUsuario(usuario);
			closeDialog();
			displayInfoMessageToUser("Registro criado com sucesso!");
			loadUsuario();
			resetUsuario();
		} catch (Exception e) {
			keepDialogOpen();
			displayErrorMessageToUser("Ocorreu um erro na transação! Tente novamente.");
			e.printStackTrace();
		}
	}
	
	public void updateUsuario() {
		try {
			getUsuarioFacade().updateUsuario(usuario);
			closeDialog();
			displayInfoMessageToUser("Registro alterado com sucesso!");
			loadUsuario();
			resetUsuario();
		} catch (Exception e) {
			keepDialogOpen();
			displayErrorMessageToUser("Ocorreu um erro na transação! Tente novamente.");
			e.printStackTrace();
		}
	}
	
	public void deleteUsuario() {
		try {
			getUsuarioFacade().deleteUsuario(usuario);
			closeDialog();
			displayInfoMessageToUser("Registro excluído com sucesso!");
			loadUsuario();
			resetUsuario();
		} catch (Exception e) {
			keepDialogOpen();
			displayErrorMessageToUser("Ocorreu um erro na transação! Tente novamente.");
			e.printStackTrace();
		}
	}

	public List<Usuario> getAllUsuario() {
		if (usuarioLista == null) {
			loadUsuario();
		}

		return usuarioLista;
	}

	private void loadUsuario() {
		usuarioLista = getUsuarioFacade().listAll();
	}

	public void resetUsuario() {
		usuario = new Usuario();
	}
}

incluirUsuario.xhtml

<!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:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">
<h:body>
	<p:dialog widgetVar="incluirUsuario" id="usuarioCreateDialogId"
		height="350" width="500" modal="true" closable="true"
		draggable="false" resizable="false">
		<h:form id="usuarioCreateDialogForm" prependId="false">
			<h:panelGrid columns="2">
		
				<h:outputText value="* Nome: " />
				<h:inputText value="#{usuarioBean.usuario.nome}"
					required="true" label="Nome">
				</h:inputText>
				<h:outputText value="* Abreviação: " />
				<h:inputText value="#{usuarioBean.usuario.abreviacao}" required="true"
					label="Abreviação">
				</h:inputText>
				<h:outputText value="* Senha: " />
				<h:inputText value="#{usuarioBean.usuario.senha}"
					required="false" label="Senha">
				</h:inputText>
				<h:outputText value="Data Nascimento: " />
				<h:inputText value="#{usuarioBean.usuario.dataNascimento}" required="false"
					label="Data Nascimento">
				</h:inputText>
				
				<p:commandButton value="Gravar" icon="ui-icon-plus"
					action="#{usuarioBean.createUsuario()}"
					update=":usuarioForm:usuarioTable"
					oncomplete="incluirUsuario.hide();" />
				<p:commandButton value="Cancelar" icon="ui-icon-cancel"
					actionListener="#{usuarioBean.resetUsuario()}"
					onclick="incluirUsuario.hide();" type="button" />
			</h:panelGrid>
		</h:form>
	</p:dialog>
</h:body>
</html>

11 Respostas

diegosantiviago

commitou?

Z

Amigo, desculpe minha pergunta, mas como assim?

Porque entendo como commit o ato de enviar meu código para um SVN. Como no meu caso, que estou usando o Google Code.
Se for nesse sentido, sim, já dei o commit.
Fiz também um clean no project e mesmo assim o problema persiste.

Vale lembrar que eu fiz um teste, incluindo um registro direto na tabela e ele apareceu em minha datatable, consegui excluir o registro também normalmente.
As únicas funções que não funcionam são as de update e insert.

diegosantiviago

não, era o commit da transação.

é que não sei o que o seu DAO tá fazendo, não tem o código ali.

se vc está usando entitymanager, tem que ver quem controla sua transação (BMT ou CMT)

talvez vc esteja chamando entitymanager.persist(objeto) e não dá erro nenhum, mas não está dando o flush.

abs

D

Depois que você ver se está fazendo o commit da transação, e caso esteja e mesmo assim não funciona.

a outra dica, é deixar essa configuração ativa no persitence.xml

Dai no console da sua IDE, vai aparecer o SQL gerado, tipo: insert into Table values …

Z

diegosantiviago

Agora entendi :lol:
Então, meu UsuarioDAO chama o DAOFactory.
Os dois estão da seguinte forma:

DAOFactory

package br.com.unip.menudroidweb.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.NoResultException;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaQuery;

abstract class DAOFactory<T> implements Serializable {
	private static final long serialVersionUID = 1L;

	private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("menudroidweb");
	private EntityManager em;

	private Class<T> entityClass;

	public void beginTransaction() {
		em = emf.createEntityManager();

		em.getTransaction().begin();
	}

	public void commit() {
		em.getTransaction().commit();
	}

	public void rollback() {
		em.getTransaction().rollback();
	}

	public void closeTransaction() {
		em.close();
	}

	public void commitAndCloseTransaction() {
		commit();
		closeTransaction();
	}

	public void flush() {
		em.flush();
	}

	public void joinTransaction() {
		em = emf.createEntityManager();
		em.joinTransaction();
	}

	public DAOFactory(Class<T> entityClass) {
		this.entityClass = entityClass;
	}

	public void save(T entity) {
		em.persist(entity);
	}

	public void delete(T entity) {
		T entityToBeRemoved = em.merge(entity);

		em.remove(entityToBeRemoved);
	}

	public T update(T entity) {
		return em.merge(entity);
	}

	public T find(int entityID) {
		return em.find(entityClass, entityID);
	}

	public T findReferenceOnly(int entityID) {
		return em.getReference(entityClass, entityID);
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	public List<T> findAll() {
		CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
		cq.select(cq.from(entityClass));
		return em.createQuery(cq).getResultList();
	}

	@SuppressWarnings("unchecked")
	protected T findOneResult(String namedQuery, Map<String, Object> parameters) {
		T result = null;

		try {
			Query query = em.createNamedQuery(namedQuery);

			if (parameters != null && !parameters.isEmpty()) {
				populateQueryParameters(query, parameters);
			}

			result = (T) query.getSingleResult();

		} catch (NoResultException e) {
			System.out.println("Nenhum resultado retornado pela query: " + namedQuery);
		} catch (Exception e) {
			System.out.println("Erro durante a execução da query: " + e.getMessage());
			e.printStackTrace();
		}

		return result;
	}

	private void populateQueryParameters(Query query, Map<String, Object> parameters) {
		for (Entry<String, Object> entry : parameters.entrySet()) {
			query.setParameter(entry.getKey(), entry.getValue());
		}
	}
}

UsuarioDAO

package br.com.unip.menudroidweb.dao;

import br.com.unip.menudroidweb.model.Usuario;

public class UsuarioDAO extends DAOFactory<Usuario> {
	private static final long serialVersionUID = -6589815408806052749L;

	public UsuarioDAO() {
		super(Usuario.class);
	}
}

devlinux2

Muito legal sua dica, coloquei aqui no arquivo e realmente, ele vai emitindo todos os comandos SQL executados.
Contudo, olhe que interessante, quando faço a rotina de inserção não emite nenhum comando no console. Por algum motivo não está nem executando os métodos de inserção.
E o mais estranho é que para as outras classes está tudo funcionando normalmente.

Agradeço desde já pela ajuda de todos!
:wink:

diegosantiviago

@Id @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(unique=true, nullable=false) private int idUsuario;
Tenta mudar para

@Id  
@GeneratedValue(strategy=GenerationType.AUTO)  
private Integer idUsuario;
Z

Amigo, fiz a modificação, mas não obtive sucesso também.
Está começando a ficar complicado :lol:

drsmachado

E no debug, o que conseguiu?

Z

Resultado do Console, desde quando iniciei o Tomcat até a hora que cliquei no botão gravar.

Set 13, 2012 2:14:12 PM org.apache.catalina.core.AprLifecycleListener init Informações: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files (x86)/Java/jre7/bin/client;C:/Program Files (x86)/Java/jre7/bin;C:/Program Files (x86)/Java/jre7/lib/i386;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Windows Live\Shared;C:\Windows\System32;C:\Program Files\Java\jdk1.7.0_05\\bin;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Java\jdk1.7.0_05\\bin;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Java\jdk1.7.0_05\\bin;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\eclipse;;. Set 13, 2012 2:14:12 PM org.apache.tomcat.util.digester.SetPropertiesRule begin Advertência: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:menuDroidWeb' did not find a matching property. Set 13, 2012 2:14:13 PM org.apache.coyote.AbstractProtocol init Informações: Initializing ProtocolHandler ["http-bio-8080"] Set 13, 2012 2:14:13 PM org.apache.coyote.AbstractProtocol init Informações: Initializing ProtocolHandler ["ajp-bio-8009"] Set 13, 2012 2:14:13 PM org.apache.catalina.startup.Catalina load Informações: Initialization processed in 492 ms Set 13, 2012 2:14:13 PM org.apache.catalina.core.StandardService startInternal Informações: Starting service Catalina Set 13, 2012 2:14:13 PM org.apache.catalina.core.StandardEngine startInternal Informações: Starting Servlet Engine: Apache Tomcat/7.0.29 Set 13, 2012 2:14:15 PM org.apache.catalina.core.StandardContext addApplicationListener Informações: The listener "com.sun.faces.config.ConfigureListener" is already configured for this context. The duplicate definition has been ignored. Set 13, 2012 2:14:15 PM com.sun.faces.config.ConfigureListener contextInitialized Informações: Inicializando Mojarra 2.1.12 ( 20120814-1522) para o contexto '/menuDroidWeb' Set 13, 2012 2:14:15 PM com.sun.faces.spi.InjectionProviderFactory createInstance Informações: JSF1048: Anotações PostConstruct/PreDestroy presentes. Os métodos ManagedBeans marcados com essas anotações informarão as anotações processadas. Set 13, 2012 2:14:16 PM org.primefaces.webapp.PostConstructApplicationEventListener processEvent Informações: Running on PrimeFaces 3.4 Set 13, 2012 2:14:16 PM org.apache.coyote.AbstractProtocol start Informações: Starting ProtocolHandler ["http-bio-8080"] Set 13, 2012 2:14:16 PM org.apache.coyote.AbstractProtocol start Informações: Starting ProtocolHandler ["ajp-bio-8009"] Set 13, 2012 2:14:16 PM org.apache.catalina.startup.Catalina start Informações: Server startup in 3156 ms Set 13, 2012 2:14:24 PM org.hibernate.annotations.common.Version <clinit> INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final} Set 13, 2012 2:14:24 PM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {4.1.6.Final} Set 13, 2012 2:14:24 PM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Set 13, 2012 2:14:24 PM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist Set 13, 2012 2:14:24 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!) Set 13, 2012 2:14:24 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000115: Hibernate connection pool size: 20 Set 13, 2012 2:14:24 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000006: Autocommit mode: true Set 13, 2012 2:14:24 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/menuDroid] Set 13, 2012 2:14:24 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000046: Connection properties: {user=root, password=****, autocommit=true, release_mode=auto} Set 13, 2012 2:14:25 PM org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect Set 13, 2012 2:14:25 PM org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreation INFO: HHH000423: Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4 Set 13, 2012 2:14:25 PM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService INFO: HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory Set 13, 2012 2:14:25 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init> INFO: HHH000397: Using ASTQueryTranslatorFactory Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000228: Running hbm2ddl schema update Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000102: Fetching database metadata Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000396: Updating schema Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: menuDroid.empresa Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [bairro, razaosocial, email, telefone, nomefantasia, cnpj, endereco, numero, idempresa] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000108: Foreign keys: [] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000126: Indexes: [primary, idempresa] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: menuDroid.formapagamento Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [descricao, idformapagamento] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000108: Foreign keys: [] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000126: Indexes: [primary, idformapagamento] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: menuDroid.grupoproduto Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [idgrupoproduto, descricao] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000108: Foreign keys: [] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000126: Indexes: [idgrupoproduto, primary] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: menuDroid.produto Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [precovenda, idproduto, precocusto, observacaocardapio, descricao] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000108: Foreign keys: [] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000126: Indexes: [primary, idproduto] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: menuDroid.usuario Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [idusuario, abreviacao, datanascimento, nome, senha] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000108: Foreign keys: [] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000126: Indexes: [idusuario, primary] Set 13, 2012 2:14:25 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000232: Schema update complete Hibernate: select usuario0_.idUsuario as idUsuario2_, usuario0_.abreviacao as abreviacao2_, usuario0_.dataNascimento as dataNasc3_2_, usuario0_.nome as nome2_, usuario0_.senha as senha2_ from menuDroid.usuario usuario0_

drsmachado

O stack diz que o método createUsuario não é executado, apenas o loadUsuario.
Agora, precisamos saber por que.
Você precisa realizar o debug (depuração) e seguir passo a passo cada um dos lugares onde o processo deveria ser feito.

Z

Olá novamente!

Desculpe pela demora em uma resposta, mas esses últimos dias estão complicados…
Voltei a dar uma fuçada aqui nesse problema e descobri o porque ele acontece.
Na classe usuário (posta acima) existe o seguinte atributo

@Temporal( TemporalType.TIMESTAMP) private Date dataNascimento;

Quando eu retiro ele da classe, consigo inserir o registro normalmente! Mas se volto esse campo, pronto, já volta a dar o problema descrito :? .
Fiz uma breve busca no google, para saber se estou fazendo algo errado no mapeamento de atributos data, mas aparentemente está tudo ok.
Tentei colocar o campo como nullable = true para verificar se era o formatado que estava digitando que estava errado, mas mesmo assim não consegui inserir o registro.

Será que alguém saberia o porque disso?

Agradeço desde já pela ajuda!!!
:smiley:

Criado 12 de setembro de 2012
Ultima resposta 23 de set. de 2012
Respostas 11
Participantes 4