saksham
saksham

Reputation: 23

org.hibernate.exception.SQLGrammarException: could not extract ResultSet and ERROR: relation "hibernate_sequence" does not exist

I am trying a connection from eclipse to postgresql(pg Admin III).I am getting following errors.

I tried every stackoverflow link and other links too.Many of them stated that "Because you are using @GeneratedValue()".

I have two tables name "User" and "Userrole" in postgresql and myhibernate.cfg.xml is:-

<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="connection.url">jdbc:postgresql://localhost:5432/shiroexample</property>
<property name="connection.username">postgres</property>
<property name="connection.password">root</property>
<property name="connection.autoReconnect">true</property>

<property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>

<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<property name="current_session_context_class">thread</property>
<property name="hibernate.show_sql">false</property>

<mapping class="com.jjoe64.shiroexample.models.User"></mapping>
<mapping class="com.jjoe64.shiroexample.models.UserRole"></mapping>
<mapping class="com.jjoe64.shiroexample.models.RolesPermission"></mapping>

</session-factory>

Error on run.I am using Tomcat server

> HTTP Status 500 - Filtered request failed.
>     
>     --------------------------------------------------------------------------------
>     
>     type Exception report
>     
>     message Filtered request failed.
>     
>     description The server encountered an internal error that prevented it from fulfilling this request.
>     
>     exception 
>     
>     javax.servlet.ServletException: Filtered request failed.
>       org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:384)
>       org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>     
>     
>     root cause 
>     
>     org.hibernate.exception.SQLGrammarException: could not extract ResultSet
>       org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:123)
>       org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
>       org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
>       org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
>       org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:88)
>       org.hibernate.id.SequenceGenerator.generateHolder(SequenceGenerator.java:122)
>       org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:115)
>       org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:117)
>       org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:206)
>       org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55)
>       org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:191)
>       org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49)
>       org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
>       org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:683)
>       org.hibernate.internal.SessionImpl.save(SessionImpl.java:675)
>       org.hibernate.internal.SessionImpl.save(SessionImpl.java:671)
>       com.jjoe64.shiroexample.RegisterServlet.registrate(RegisterServlet.java:102)
>       com.jjoe64.shiroexample.RegisterServlet.doPost(RegisterServlet.java:65)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
>       org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>       org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>       org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>       org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>       org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>       org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>       org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>       org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>     
>     
>     root cause 
>     
>     org.postgresql.util.PSQLException: ERROR: relation "hibernate_sequence" does not exist
>       Position: 17
>       org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2453)
>       org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2153)
>       org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:286)
>       org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:432)
>       org.postgresql.jdbc.PgStatement.execute(PgStatement.java:358)
>       org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:171)
>       org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:119)
>       org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:79)
>       org.hibernate.id.SequenceGenerator.generateHolder(SequenceGenerator.java:122)
>       org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:115)
>       org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:117)
>       org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:206)
>       org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55)
>       org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:191)
>       org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49)
>       org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
>       org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:683)
>       org.hibernate.internal.SessionImpl.save(SessionImpl.java:675)
>       org.hibernate.internal.SessionImpl.save(SessionImpl.java:671)
>       com.jjoe64.shiroexample.RegisterServlet.registrate(RegisterServlet.java:102)
>       com.jjoe64.shiroexample.RegisterServlet.doPost(RegisterServlet.java:65)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
>       org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>       org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>       org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>       org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>       org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>       org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>       org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>       org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>     
>     
>     note The full stack trace of the root cause is available in the Apache Tomcat/7.0.69 logs.
>     
>     
>     --------------------------------------------------------------------------------
>     
>     Apache Tomcat/7.0.69

Initially I think that User is reserve keyword but then I use User with \"User\" but nothing work for me.

If anyone can help me...!!

Upvotes: 0

Views: 4525

Answers (1)

Ray Lloy
Ray Lloy

Reputation: 171

  • @GeneratedValue() is use for auto increment. Posgres create sequences to use auto-increment.
  • Postgres is case sensitive, the name of the sequence must be the same in your configuration file.

to set the sequence name you can see here

I hope this help you.

Upvotes: 1

Related Questions