环境:jdk1.6
框架:SSH
服务器:resin
首先交代下大概业务,实体A(某一行业属性配置)、实体B(行业功能,such as 发送短信的机制)、其中A种使用联合主键;
行业初始化时,保存当前行业的机制(保存B对象),同时保存该机制的属性配置(保存A对象);
以上过程通过saveOrupdate操作完全没有问题;
但在相同行业下新增一个机制B ; A也随之增加,走之前的接口操作新对象的时候只会更新之前的B对象,而不是新增一条记录,怎么破!!!完全存不上他的相关属性配置呀!
那么问题来了.....
因为A使用的联合主键,saveOrupdate的时候hibernate会根据主键去查找,如果对象存在不进行sava操作,而是进行update操作,但是直接调用hibernate的save的时候因为
他的主键已经存在了,所有会报主键冲突。。。。
最后没办法,只能在A中又加入另一个联合主键,新增主键为行业功能ID,因为B中新增功能的ID不重复,所以就解决这个问题。。。。