今天一如继往的用hibernate和H2,结果试图保存对象Order时,出错了。并且连这个表都创建不了。
INFO :org.hibernate.tool.hbm2ddl.DatabaseMetadata - table not found: order
ERROR:org.hibernate.tool.hbm2ddl.SchemaUpdate - Unsuccessful: create table order (idinteger generated by default as identity, number varchar(255), primary key(id))
ERROR:org.hibernate.tool.hbm2ddl.SchemaUpdate - Syntax error in SQL statement"CREATE TABLE ORDER[*] (ID INTEGER GENERATED BY DEFAULT AS IDENTITY,NUMBER VARCHAR(255), PRIMARY KEY (ID)) "; expected "identifier";SQL statement:
create table order(id integer generated by default as identity, number varchar(255), primary key(id)) [42001-144]
INFO :org.hibernate.tool.hbm2ddl.SchemaUpdate - schema update complete
Hibernate: insertinto order (id, number) values (null, ?)
WARN :org.hibernate.util.JDBCExceptionReporter - SQL Error: 42001, SQLState: 42001
ERROR:org.hibernate.util.JDBCExceptionReporter - Syntax error in SQL statement"INSERT INTO ORDER[*] (ID, NUMBER) VALUES (NULL, ?) "; expected"identifier"; SQL statement:
insert into order(id, number) values (null, ?) [42001-144]
org.hibernate.exception.SQLGrammarException:could not insert: [com.gathershell.domain.Order]
atorg.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
atorg.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
atorg.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:64)
网上查了查说的也不太懂,最后我用它自带的控制台手动创建表,把它例子中的表名TEST改为ORDER后就出错了。那还能说什么呢?这个名子不要用。我把它改为其它名子果然就可以了。不过这应不是根本原因。