数据库操作异常信息总结,持续添加中

情景再现:

String sql = "delete from tv_favorite where id in (1,2)";
this.getSession.createQuery(sql);

 Not supported for DML operations
一般这种错误的原因是你用update()执行了select语句,或者用query()执行了insert或delete语句。

 

org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): bestv.tv.entity.epg.EpgFavorite
主键不能为空

  

 

org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access; nested exception is org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
看报错是主键冲突了,应该是在insert的时候吧。
用的什么数据库,如果是mysql,那你的表是MyISAM表结构的么,如果是,那么你的id是指定autoincrement么?如果答案仍然是肯定的,那么我建议你先不要依赖id的autoincrement,自己指定id试试,其他code不动,如果这样就能插入了,就是说mysql自身有些问题,myisam这个存储引擎自身有点问题,免费的东东嘛。

如果说你用的oracle之类的数据,嗯,oracle不支持autoincrement,得用sequence来实现类似的功能,应该没事。

anyway,我的意思是说,如果你用mysql,先排查一下,我怀疑是数据库自身的问题,如果你用的是oracle的话,我觉得不用太怀疑数据库了,查自己的code吧

 

 

你可能感兴趣的:(异常信息)