hibernate 使用了 ejb 注解自动生成主键,可是为什么保存的时候主键还是没有值而且报错?

颖辉小居 发布于 02/01 10:08
阅读 67
收藏 0
    @Id
    @Column(name = "ID", length = 64, updatable = false)
    @GeneratedValue(strategy=GenerationType.IDENTITY) 
    private Integer id;// id

如上设置了主键生成策略,可是在保存到mysql的时候为什么还会报错:

Caused by: java.sql.SQLException: Field 'ID' doesn't have a default value
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
	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)

 

加载中
1
末班_车

报错的地方提示是update,update需要有id

0
RyuuKazu
RyuuKazu

1、列出来保存数据的代码;

2、这个注解和 ejb 没有什么关系,我猜你想说 jpa。

0
湖水没了
湖水没了
你这明显是update,更新的时候主键肯定不能为空 跟注解也毫无关系 你之所以遇到问题 就是缺乏对现象分析的能力 通常会东拉西扯一堆根问题毫不相干的东西 改掉这种毛病 按下浮躁 仔细看错误日志 所有有用的信息只在错误日志中
返回顶部
顶部