今天在进行hibernate的saveOrUpdateAll操作时报了这个错误
identifier of an instance;
这是原本的代码:
TbCjrDiseaseHis tbCjrDiseaseHis;
for (int i = 0; i < tbCjrDiseaseHisList.size(); i++) {
修改后的代码:
for (int i = 0; i < tbCjrDiseaseHisList.size(); i++) {
TbCjrDiseaseHis
tbCjrDiseaseHis.setId(java.util.UUID.randomUUID().toString());
tbCjrDiseaseHis.setPersonId(tbCjrInformation.getPersonId());
tbCjrDiseaseHis.setYl(PtConstants.SFGL_SFGX_1); //进行去空格处理
StringUtils.toTrime(tbCjrDiseaseHis);
tbCjrDiseaseHises.add(tbCjrDiseaseHis);
}
this.getHibernateTemplate().saveOrUpdateAll(tbCjrDiseaseHises);
个人认为报错的原因是,在没有给对象tbCjrDiseaseHis 分配初始的内存地址的时候,就进行对象生成,不管生成多少个,都是多个对象的内存指针指向一个内存地址,所以hibernate在存储时就会保存。放在内存里面每次new就等一个新的内存空间,所以不会报错。
理论上,在外面给tbCjrDiseaseHis 申明为null也是可行的。