论坛首页 Java企业应用论坛

Hibernate4遇到的一个问题

浏览 1787 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2015-07-10  
以下代码中company可以从数据库中正常查找到
但是当保存group时,会报以下问题,

好像是从group表查找最大ID时报错,找不到结果

具体代码:
ApplicationContext ac = new FileSystemXmlApplicationContext("src/resources/applicationContext.xml");

SessionFactory sf = (SessionFactory) ac.getBean("sessionFactory");
Session s = sf.openSession();
Transaction tx = s.beginTransaction();


Company company = (Company) s.get(Company.class, 1L);
System.out.println(company.getComanyAddress()+company.getCompanyName());

Group group = new Group();

group.setNo("8100001");
group.setGroupName("TestZu");
group.setColor("red");
group.setCount(3);
group.setRegistTime(new Date());
group.setCompany(company);

s.save(group);
        tx.commit();
s.close();

所报问题具体情况
Hibernate:
    select
        company0_.id as id1_1_0_,
        company0_.No as No2_1_0_,
        company0_.companyName as companyN3_1_0_,
        company0_.comanyAddress as comanyAd4_1_0_,
        company0_.phoneNumber as phoneNum5_1_0_,
        company0_.userName as userName6_1_0_,
        company0_.userEmail as userEmai7_1_0_,
        company0_.userMobilePhone as userMobi8_1_0_,
        company0_.password as password9_1_0_
    from
        company company0_
    where
        company0_.id=?
华宇大厦 1201Iliwoo
Hibernate:
    select
        max(id)
    from
       
    group
3573 [main] WARN spi.SqlExceptionHelper  - SQL Error: 1064, SQLState: 42000
3573 [main] ERROR spi.SqlExceptionHelper  - 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 'group' at line 1
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not extract ResultSet
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:123)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:89)
at org.hibernate.id.IncrementGenerator.initializePreviousValueHolder(IncrementGenerator.java:132)
at org.hibernate.id.IncrementGenerator.generate(IncrementGenerator.java:69)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:117)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:209)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:194)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:711)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:703)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:698)
at com.ssh.test.Test.main(Test.java:61)
Caused by: com.mysql.jdbc.exceptions.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 'group' at line 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3176)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1153)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1266)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:80)
... 12 more
   发表时间:2015-12-04  
根据这个报错是SQL语法错误,group是SQL的关键字,不能作为实体名(表名)。当然实体名可以不改表名可以改。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics