a different object with the same identifier value

1342 ワード

今日excel導入をしたときに遭遇した問題は、
Excel内のレコードをデータベースに入力する過程で、存在すればupdate、存在しなければsaveとなり、データベースを操作する前にそれぞれ2つの異なる性質のbeanをsaveListとupdateListに置いて順次呼び出す
saveOrUpdateByList(List list)メソッド

public synchronized int saveOrUpdateByList(List listObj){
		int count = 0;
		Session session = null;
		try {
			if(listObj != null && !listObj.isEmpty()){
				session = getSession();
				for(int i = 1;i<=listObj.size();i++){
					session.saveOrUpdate(listObj.get(i-1));					count++;
					if(i%20 == 0){
						session.flush();
						session.clear();
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(session != null){
				session.flush();
				session.clear();
				releaseSession(session);
			}
		}
		return count;
	}

いつも間違っているa different object with the same identifier value was already associated with the session
ウェブサイトを調べて、merge()の方法を使うと言って、方法の中の
session.saveOrUpdate(listObj.get(i-1));

に改心
session.saveOrUpdate(session.merge(listObj.get(i-1)));

よし、
解决はすべて解决して、もともとeyeフォーラムに行って问题の出现の原因とこのような解决の方法を探求したいと思って、しかし弱い理论はやはり私に放弃させて、みんなの考えを散らさないことを恐れます...