我的代码中出现以下错误:
org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad
SQL grammar [insert into bulletins (date, name, subject, note, approved) values
(?, ?, ?, ?, ?)]; nested exception is com.mysql.jdbc.exceptions.MySQLSyntaxError
Exception: Unknown column 'date' in 'field list'
这一行在我的Spring控制器中。
bulletinDAO.writeBulletin(bulletin);
我的DAO课程中的实际位置,我尝试使用Hibernate编写。
public void writeBulletin(Bulletin bulletin) {
try {
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.save(bulletin);
tx.commit();
} catch (Exception e) {
System.out.println(e.toString());
}
}
这是我的模特课。
@Entity
@Table(name="login")
public class Bulletin {
@Id
@Column(name="id")
@GeneratedValue
private int id;
@Column(name="bulletin_date")
private String date;
@Column(name="name")
private String name;
@Column(name="subject")
private String subject;
@Column(name="note")
private String note;
@Column(name="approved")
private boolean approved;
// Getters and setters follow
}
最后,这是表格的布局。
+---------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| bulletin_date | varchar(10) | YES | | NULL | |
| name | varchar(30) | YES | | NULL | |
| subject | varchar(50) | YES | | NULL | |
| note | varchar(2500) | YES | | NULL | |
| approved | tinyint(1) | YES | | NULL | |
+---------------+---------------+------+-----+---------+----------------+
答案 0 :(得分:0)
您的问题就在这里 [插入公告(日期,姓名,主题,注释,已批准)]
而你需要bullletin_date。
根据经验,我需要完全重建项目以确保引用正确的列名。
清除项目缓存并重建它。
让我知道你如何去,如果它没有帮助我会进一步提供帮助。
答案 1 :(得分:0)
你的getter和setter一定有问题。
我建议将属性名称从date
更改为bulletinDate
。然后设置&搞定......
@Column(name="bulletin_date")
private String bulletinDate;
public String getBulletinDate() {
return bulletinDate;
}
public void setBulletinDate(String bulletin_date) {
this.bulletinDate = bulletin_date;
}