1. 程式人生 > >identifier of an instance of XXX.XXX was altered from n to n+1 異常

identifier of an instance of XXX.XXX was altered from n to n+1 異常

造成錯誤的原因是:

利用Hibernate批量新增,傳入實體類引數,這裡是用for迴圈進行批量新增;每迴圈一次,需要重新例項化實體類,但是卻將實體類例項化放在迴圈外面

解決辦法,把要進行CRUD操作 的實體物件在for迴圈裡面建立:

 for(int i=0;i<projectIds.length;i++){
			 PgContractProject entity = new PgContractProject();//這個物件不能建立在外面
			 entity.setContractId(contractId);
			 entity.setLinkStatus("1");
			 entity.setProjectId(projectIds[i]);
			 entity.setLastModifierName(user.getUserName());
			 dao.saveContractProject(entity);
		 }

PgContractProject entity建立在迴圈外面的話,每次操作都是針對同一個“entity”物件,這就不對了,引發報錯