我知道这个问题有很多话题,但我仍然无法解决我的问题。
这是实体类:
@Entity
@Table(name = "messages")
public class Message
{
....
@Column(name = "read", nullable = false, columnDefinition = "TINYINT(1)")
private boolean read;
....
public boolean isRead()
{
return read;
}
public void setRead(boolean read)
{
this.read = read;
}
在messages
MySQL表格中,read
列的输入为tinyint(1)
。在将对象保存到表之前,我设置了setRead(true)
。当我通过Hibernate(save()
)保存对象时,我得到以下错误:
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
'read, senderId, title) values ('ujhjg', 1, 1, 'W pustyni i w puszczy')'
我使用jdbc.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
并尝试通过更改boolean field的注释来解决我的问题,但没有一种方法可以解决我的问题。
我的地图有什么问题,以及如何让它成功?
感谢您的帮助和时间;)
答案 0 :(得分:6)
单词read
是MySQL保留关键字之一。查看MySQL 5.0 Manual - 9.3. Reserved Words上的表格。使用不同的名称来避免这种情况。