Hibernate + MySQL中的布尔映射问题

Mat*_*yla 2 mysql hibernate spring-mvc hibernate-mapping

我知道这个问题上有很多话题,但我仍然无法解决我的问题.

这是实体类:

@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;
}
Run Code Online (Sandbox Code Playgroud)

messagesMySQL表中,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')'
Run Code Online (Sandbox Code Playgroud)

我使用jdbc.dialect=org.hibernate.dialect.MySQL5InnoDBDialect并尝试了几种方法来通过更改布尔字段的注释来解决我的问题,但它们都没有工作.

我的映射有什么问题,以及如何使其工作?

感谢您的帮助和时间;)

Pro*_*man 6

这个词read是MySQL保留的关键字之一.查看MySQL 5.0手册 - 9.3上的表格.保留字.使用其他名称来避免此类情况.