默认情况下,Hibernate update会吧整个实体的所有字段进行更新一次
解决方式有三:
1.设置字段的update属性
hbm.xml中:<property name="columnUnUpdate" update="false"></property>
Annotation中:@Column(updatable=false)
2.设置字段的dynamic-update属性
同方式1,在不需要更新的字段上加dynamic-update="true"
3.使用HQL/SQL语句(灵活) {推荐}
private boolean update(boolean isHql, String queryString, Map<String, Object> param) {
// TODO Auto-generated method stub
Query query = null;
if (isHql) {
query = this.getLocSession().createQuery(queryString);
} else {
query = this.getLocSession().createSQLQuery(queryString);
}
if (null != param && !param.isEmpty()) {
query.setProperties(param);
}
if(query.executeUpdate() > 0){
return true;
}
return false;
}