Org.hibernate.exception.SQLGrammarException: could not insert:

3 respostas
J

Ola amigos, estou criando um sisteminha de login e senha, com hibernate, mas na hora quando eu mando salvar, tou recebendo o seguinte erro

org.hibernate.exception.SQLGrammarException: could not insert: [com.br.joaoleno.usuario.Usuario]

- Stack Trace

javax.faces.el.EvaluationException: org.hibernate.exception.SQLGrammarException: could not insert: [com.br.joaoleno.usuario.Usuario]
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.br.joaoleno.web.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:29)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)
Caused by: org.hibernate.exception.SQLGrammarException: could not insert: [com.br.joaoleno.usuario.Usuario]
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:64)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2329)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2836)
	at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71)
	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:268)
	at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321)
	at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:705)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:693)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:689)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:344)
	at $Proxy127.save(Unknown Source)
	at com.br.joaoleno.usuario.UsuarioDAOHibernate.salvar(UsuarioDAOHibernate.java:18)
	at com.br.joaoleno.usuario.UsuarioRN.salvar(UsuarioRN.java:33)
	at com.br.joaoleno.web.UsuarioBean.salvar(UsuarioBean.java:50)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	... 30 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'status' in 'field list'
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
	at com.mysql.jdbc.Util.getInstance(Util.java:386)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2683)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2144)
	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2444)
	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2362)
	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2347)
	at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:94)
	at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:57)
	... 62 more
- Component Tree

<UIViewRoot id="j_id1" inView="true" locale="pt_BR" renderKitId="HTML_BASIC" rendered="true" transient="false" viewId="/usuario.xhtml">

    <?xml version="1.0" encoding="ISO-8859-1" ?>

    <html xmlns="http://www.w3.org/1999/xhtml">

    <UIOutput id="j_idt4" inView="true" rendered="true" transient="false">

        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> <title>Cadastro de Usuários</title>

    </UIOutput>

    <UIOutput id="j_idt6" inView="true" rendered="true" transient="false">

        <h1>Cadastro de Usuários</h1> <hr/>

        <HtmlForm enctype="application/x-www-form-urlencoded" id="cadastross" inView="true" prependId="true" rendered="true" submitted="true" transient="false">

            <HtmlMessages globalOnly="false" id="j_idt8" inView="true" layout="list" redisplay="true" rendered="true" showDetail="false" showSummary="true" tooltip="false" transient="false"/>

            <!--O campo idUsuario e estatus estão ocultos -->

            <HtmlInputHidden id="j_idt10" immediate="false" inView="true" localValueSet="false" rendered="true" required="false" transient="false" valid="true" value="0"/>

            <HtmlInputHidden id="j_idt11" immediate="false" inView="true" localValueSet="false" rendered="true" required="false" transient="false" valid="true" value="false"/>

            <HtmlPanelGrid border="-[telefone removido]" columns="2" id="j_idt12" inView="true" rendered="true" transient="false">

                <HtmlOutputLabel escape="true" for="nome" id="j_idt13" inView="true" rendered="true" transient="false" value="Nome.: "/>

                <HtmlInputText disabled="false" id="nome" immediate="false" inView="true" label="Nome" localValueSet="false" maxlength="45" readonly="false" rendered="true" required="true" requiredMessage="Digite seu nome." size="45" transient="false" valid="true" value="João Leno Alfredo Souza"/>

                <HtmlOutputLabel escape="true" for="email" id="j_idt14" inView="true" rendered="true" transient="false" value="E-mail.: "/>

                <HtmlPanelGroup id="j_idt15" inView="true" rendered="true" transient="false">

                    <HtmlInputText disabled="false" id="email" immediate="false" inView="true" label="E-mail" localValueSet="false" maxlength="70" readonly="false" rendered="true" required="true" requiredMessage="Por favor digite seu e-mail." size="70" transient="false" valid="true" validatorMessage="E-mail inválido" value="[email removido]"/>

                </HtmlPanelGroup>

                <HtmlOutputLabel escape="true" for="idioma" id="j_idt16" inView="true" rendered="true" transient="false" value="Idioma.: "/>

                <HtmlSelectOneMenu disabled="false" id="idioma" immediate="false" inView="true" localValueSet="false" readonly="false" rendered="true" required="false" transient="false" valid="true" value="pt_BR">

                    <UISelectItem id="j_idt17" inView="true" itemDisabled="false" itemEscaped="true" itemLabel="Português" itemValue="pt_BR" noSelectionOption="false" rendered="true" transient="false"/>

                    <UISelectItem id="j_idt18" inView="true" itemDisabled="false" itemEscaped="true" itemLabel="English" itemValue="en_US" noSelectionOption="false" rendered="true" transient="false"/>

                    <UISelectItem id="j_idt19" inView="true" itemDisabled="false" itemEscaped="true" itemLabel="Espanol" itemValue="es_ES" noSelectionOption="false" rendered="true" transient="false"/>

                </HtmlSelectOneMenu>

                <HtmlOutputLabel escape="true" for="senha" id="j_idt20" inView="true" rendered="true" transient="false" value="Senha.: "/>

                <HtmlInputSecret disabled="false" id="senha" immediate="false" inView="true" label="Nome" localValueSet="false" maxlength="15" readonly="false" redisplay="true" rendered="true" required="true" requiredMessage="Por favor digite a senha." size="15" transient="false" valid="true" value="s"/>

                <HtmlOutputLabel escape="true" for="confSenha" id="j_idt21" inView="true" rendered="true" transient="false" value="Confirmar Senha.: "/>

                <HtmlInputSecret disabled="false" id="confSenha" immediate="false" inView="true" label="Confirmar Senha.: " localValueSet="false" maxlength="15" readonly="false" redisplay="true" rendered="true" required="true" requiredMessage="Por favor digite a confirmação da senha." size="15" transient="false" valid="true" value="s"/>

                <HtmlOutputText escape="true" id="j_idt22" inView="true" rendered="true" transient="false"/>

                <HtmlCommandButton action="#{usuario.salvar}" actionExpression="#{usuario.salvar}" disabled="false" id="j_idt23" immediate="false" inView="true" readonly="false" rendered="true" transient="false" type="submit" value="Salvar"/>

            </HtmlPanelGrid>

        </HtmlForm>

        <hr/>

    </UIOutput>

    </html>

</UIViewRoot>
Scoped Variables
Request ParametersName	Value
cadastross	cadastross
cadastross:confSenha	s
cadastross:email	[email removido]
cadastross:idioma	pt_BR
cadastross:j_idt10	
cadastross:j_idt11	
cadastross:j_idt23	Salvar
cadastross:nome	João Leno Alfredo Souza
cadastross:senha	s
View AttributesName	Value
None
Request AttributesName	Value
usuario	com.br.joaoleno.web.UsuarioBean@7ca336
Flash AttributesName	Value
None
Session AttributesName	Value
None
Application AttributesName	Value
csfcff	com.sun.faces.context.flash.ELFlash@ba428e

aqui é meu hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!--Configurações do hibernate: mapeamento dos objetos -->
<hibernate-configuration>
 <!--session-factory atraves dele é que eu faço o mapeamento e as configurações do hibernate -->
    <session-factory>
       <!--Configuração com o banco mysql e dialecto -->
       <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><!--Nome do driver e referencia do banco -->
       <property name="hibernate.connection.url">jdbc:mysql://localhost/login</property> <!--MODIFICAR -->
       <property name="hibernate.connection.username">root</property>
       <property name="hibernate.connection.password">160406</property>
       <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <!--Nome da classe responsavel por fazer a conversação entre o banco de dados o hibernate -->
       <property name="current_session_context_class">thread</property>
       <property name="hibernate.hbm2dll.auto">update</property>
       <!--Mapeamento da class Usuario -->
       <mapping class="com.br.joaoleno.usuario.Usuario"></mapping>

   </session-factory>
</hibernate-configuration>

alguem ja teve esse erro ? eu acho que ele não tá conseguindo criar a tabela.

3 Respostas

J

O nome do meu banco é login e a tabela é usuario, tenho que especificar no hibernate.cfg.xml ou deixa assim ?

J

up

J

Consegui resolver, eu observei no Strack que o meu campo era status, porem na minha tabela no banco era estatus, coloquei os dois com o mesmo nome, e funcionou .

Criado 2 de julho de 2012
Ultima resposta 2 de jul. de 2012
Respostas 3
Participantes 1