这是我的代码插入到两个表中。但它给了我一个错误“批量更新返回意外的行数从更新[0];实际行数:0;预期:1”为什么session.save()引发更新查询?
Session session = sessionFactory.getCurrentSession();
ProfileDTO profile = new ProfileDTO();
profile.setCustomerID(1);
profile.setProfileName(profileName);
profile.setProfileType(profileType);
profile.setRecordId(9);
session.save(profile);
int profileID = profile.getRecordId();
CustomerMeasurementsDTO measurement = new CustomerMeasurementsDTO();
String ids[] = profileidsString.split(",");
String vals[] = profilevalsString.split(",");
for (int i = 0; i < ids.length ; i++){
measurement.setMeasurementId(ids[i]);
measurement.setMeasurementValue(vals[i]);
measurement.setCustMeasurementsProfileId(profileID);
session.save(measurement);
};
在执行时,它给出了这样的记录目的。
Hibernate:
/* insert com.domain.CustomerMeasurementsDTO
*/ insert
into
cust_measurements
(cust_measurements_record_id, last_modified, measurement_id, measurement_value, measurement_record_id)
values
(?, ?, ?, ?, ?)
Hibernate:
/* update
com.domain.CustomerMeasurementsDTO */ update
cust_measurements
set
cust_measurements_record_id=?,
last_modified=?,
measurement_id=?,
measurement_value=?
where
measurement_record_id=?
我希望它再次进行插入查询,而它试图更新。请帮我,我错了。
我试过,但现在它给了我 “一个具有相同标识符值的不同对象已经与会话相关联” 我真的不明白这些错误的含义是什么。请你能解释我。 – 2012-03-08 21:38:48