保存pojo对象时报错pojo类: public class Message implements java.io.Serializable { // Fields private Integer id;
private Users users;
private String content;
private Date date;
private Integer support=0;
private Integer unsupport=0;
private Integer ref;
private Short show=(short)1; // Constructors /** default constructor */
public Message() {
} /** minimal constructor */
public Message(String content, Date date) {
this.content = content;
this.date = date;
} /** full constructor */
public Message(Users users, String content, Date date, Integer support,
Integer unsupport, Integer ref, Short show) {
this.users = users;
this.content = content;
this.date = date;
this.support = support;
this.unsupport = unsupport;
this.ref = ref;
this.show = show;
} // Property accessors public Integer getId() {
return this.id;
} public void setId(Integer id) {
this.id = id;
}
.....
对应的hbm.xml映射文件:
<hibernate-mapping>
<class name="dao.entities.Message" table="message" catalog="board">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<many-to-one name="users" class="dao.entities.Users" fetch="select">
<column name="user" />
</many-to-one>
<property name="content" type="java.lang.String">
<column name="content" length="65535" not-null="true" />
</property>
<property name="date" type="java.util.Date">
<column name="date" length="10" not-null="true" />
</property>
<property name="support" type="java.lang.Integer">
<column name="support" not-null="true" default="0"/>
</property>
<property name="unsupport" type="java.lang.Integer">
<column name="unsupport" not-null="true" default="0"/>
</property>
<property name="ref" type="java.lang.Integer">
<column name="ref" />
</property>
<property name="show" type="java.lang.Short">
<column name="show" not-null="true" default="1"/>
</property>
</class>
</hibernate-mapping>
对应的Users的hbm.xml配置文件(我这里是单向关联,开始是双向的一直报错 改成单向了还是一样):
<hibernate-mapping>
<class name="dao.entities.Users" table="users" catalog="board">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="userName" type="java.lang.String">
<column name="user_name" not-null="true" />
</property>
<property name="password" type="java.lang.String">
<column name="password" not-null="true" />
</property>
</class>
</hibernate-mapping>在程序中实例化一个message类后 调用hibernater的session.save(message)的方法时 报错如下:
Hibernate: insert into board.message (user, content, date, support, unsupport, ref, show) values (?, ?, ?, ?, ?, ?, ?)
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not insert: [dao.entities.Message]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1986)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2405)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:37)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:269)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:530)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:518)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:514)
at dao.entities.xxxx.main(xxxx.java:18)
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 'show) values (null, '123', '2009-03-29 19:03:10', 0, 0, null, 1)' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1968)
... 15 more
请高手帮看看是哪里出问题了?
private Users users;
private String content;
private Date date;
private Integer support=0;
private Integer unsupport=0;
private Integer ref;
private Short show=(short)1; // Constructors /** default constructor */
public Message() {
} /** minimal constructor */
public Message(String content, Date date) {
this.content = content;
this.date = date;
} /** full constructor */
public Message(Users users, String content, Date date, Integer support,
Integer unsupport, Integer ref, Short show) {
this.users = users;
this.content = content;
this.date = date;
this.support = support;
this.unsupport = unsupport;
this.ref = ref;
this.show = show;
} // Property accessors public Integer getId() {
return this.id;
} public void setId(Integer id) {
this.id = id;
}
.....
对应的hbm.xml映射文件:
<hibernate-mapping>
<class name="dao.entities.Message" table="message" catalog="board">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<many-to-one name="users" class="dao.entities.Users" fetch="select">
<column name="user" />
</many-to-one>
<property name="content" type="java.lang.String">
<column name="content" length="65535" not-null="true" />
</property>
<property name="date" type="java.util.Date">
<column name="date" length="10" not-null="true" />
</property>
<property name="support" type="java.lang.Integer">
<column name="support" not-null="true" default="0"/>
</property>
<property name="unsupport" type="java.lang.Integer">
<column name="unsupport" not-null="true" default="0"/>
</property>
<property name="ref" type="java.lang.Integer">
<column name="ref" />
</property>
<property name="show" type="java.lang.Short">
<column name="show" not-null="true" default="1"/>
</property>
</class>
</hibernate-mapping>
对应的Users的hbm.xml配置文件(我这里是单向关联,开始是双向的一直报错 改成单向了还是一样):
<hibernate-mapping>
<class name="dao.entities.Users" table="users" catalog="board">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="userName" type="java.lang.String">
<column name="user_name" not-null="true" />
</property>
<property name="password" type="java.lang.String">
<column name="password" not-null="true" />
</property>
</class>
</hibernate-mapping>在程序中实例化一个message类后 调用hibernater的session.save(message)的方法时 报错如下:
Hibernate: insert into board.message (user, content, date, support, unsupport, ref, show) values (?, ?, ?, ?, ?, ?, ?)
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not insert: [dao.entities.Message]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1986)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2405)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:37)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:269)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:530)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:518)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:514)
at dao.entities.xxxx.main(xxxx.java:18)
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 'show) values (null, '123', '2009-03-29 19:03:10', 0, 0, null, 1)' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1968)
... 15 more
请高手帮看看是哪里出问题了?
解决方案 »
- 麻烦帮忙看下这个错误是struts2哪个包没导入 还是什么情况
- stuuts2 数据库连接 红字部分是有错误的。。。求大神
- hibernate
- 请大家帮帮我:如何调用类
- 新手提问:一定要用avascript吗
- 关于JSF的子窗体向父窗体传递值
- xstream对象转xml遇到特殊字符怎么处理方便些 在线等
- java的一个方法怎么写更好,麻烦大家了
- 用applet做的corba客户端,使用appletviewer运行可以连接服务器,但在ie中却不行????
- 在Weblogic6.1中如何配置支持jsp
- java项目,用Tomcat5.5.27版本时,在程序运行时出现javax.servlet.ServletException: Java heap space异常,而且项目运行速度很慢,怎么处理?
- 大家讨论下: Spring 中的事务
user字段名 改一下 再试
这些字段名 好几个都得改改