title: using MySQL by Hibernate : org.hibernate.exception.SQLGrammarException
body: <p>I am using Hibernate to access MySQL database for my java application. I configured Hibernate using <a href="http://netbeans.org/kb/docs/java/hibernate-java-se.html" rel="nofollow">this instructions</a> .Now I want to have query to my database; using this code:</p>
  
  <pre><code>java.util.List categList = null;
  SessionFactory sessionFacoryt ;
  sessionFacoryt = NewHibernateUtil.getSessionFactory();
  org.hibernate.classic.Session hiberanateSession = sessionFacoryt.getCurrentSession();
  String HQL = "select r from RssCategory r";
  Transaction transaction = hiberanateSession.beginTransaction();                
  org.hibernate.Query q = hiberanateSession.createQuery(HQL);
  
  // here is the Exception cause line  
  categList = q.list();
  </code></pre>
  
  <p>as you see because of the last line; I see this Exception: </p>
  
  <pre><code>Oct 23, 2011 3:20:25 PM org.hibernate.util.JDBCExceptionReporter
  logExceptions WARNING: SQL Error: 1064, SQLState: 42000 Oct 23, 2011
  3:20:25 PM org.hibernate.util.JDBCExceptionReporter logExceptions
  SEVERE: You have an error in your SQL syntax; check the manual that
  corresponds to your MySQL server version for the right syntax to use
  near '-IPTV-EPG.rss_category rsscategor0_' at line 1
  org.hibernate.exception.SQLGrammarException: could not execute query at
  org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67) at
  org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
  at org.hibernate.loader.Loader.doList(Loader.java:2223)     at
  org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)  at
  org.hibernate.loader.Loader.list(Loader.java:2099)  at
  org.hibernate.hql.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:912) at
  org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172) at
  org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)  at
  org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)    at
  RSS.connectHtmlandleRSS.addTODB(connectHtmlandleRSS.java:206)   at
  RSS.connectHtmlandleRSS.access$000(connectHtmlandleRSS.java:37)     at
  RSS.connectHtmlandleRSS$1.run(connectHtmlandleRSS.java:163) Caused by:
  com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an
  error in your SQL syntax; check the manual that corresponds to your
  MySQL server version for the right syntax to use near
  '-IPTV-EPG.rss_category rsscategor0_' at line 1     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:409)    at
  com.mysql.jdbc.Util.getInstance(Util.java:384)  at
  com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)  at
  com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)  at
  com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)  at
  com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)   at
  com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)    at
  com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2568)     at
  com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113) at
  com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2275) at
  org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186) at 
  org.hibernate.loader.Loader.getResultSet(Loader.java:1787)  at
  org.hibernate.loader.Loader.doQuery(Loader.java:674)    at
  org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) at
  org.hibernate.loader.Loader.doList(Loader.java:2220)
  </code></pre>
  
  <p>can anyone guide me for the cause of this exception ?
  thanks.</p>
  
  <p>here is mapping generated for RssCategory; This class was generated to this package sakila.entity.</p>
  
  <pre><code>&lt;hibernate-mapping&gt;
      &lt;class name="sakila.entity.RssCategory" table="rss_category" catalog="SAMIM-IPTV-EPG"&gt;
          &lt;id name="catId" type="int"&gt;
              &lt;column name="cat_id" /&gt;
              &lt;generator class="assigned" /&gt;
          &lt;/id&gt;
          &lt;property name="catName" type="string"&gt;
              &lt;column name="cat_name" length="45" not-null="true" unique="true" /&gt;
          &lt;/property&gt;
          &lt;set name="rssNewses" inverse="true" table="rss_to_cat"&gt;
              &lt;key&gt;
                  &lt;column name="cat_id" not-null="true" /&gt;
              &lt;/key&gt;
              &lt;many-to-many entity-name="sakila.entity.RssNews"&gt;
                  &lt;column name="rss_id" not-null="true" /&gt;
              &lt;/many-to-many&gt;
          &lt;/set&gt;
      &lt;/class&gt; &lt;/hibernate-mapping&gt;
  </code></pre>
  
  <p>and here is the SQL code generated for rss_category: </p>
  
  <pre><code>CREATE TABLE `rss_category` (
    `cat_id` int(11) NOT NULL,
    `cat_name` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
    PRIMARY KEY (`cat_id`),
    UNIQUE KEY `cat_name_UNIQUE` (`cat_name`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  </code></pre>
  
  <p>and the HQL query generated by Hibernate is:</p>
  
  <pre><code>Hibernate: select rsscategor0_.cat_id as cat1_4_, rsscategor0_.cat_name as cat2_4_ from SAMIM-IPTV-EPG.rss_category rsscategor0_
  </code></pre>