ソースを参照

添加 clearModifyFlag() 方法

James 3 年 前
コミット
5ab3dacb41
1 ファイル変更13 行追加7 行削除
  1. 13 7
      src/main/java/com/jfinal/plugin/activerecord/Model.java

+ 13 - 7
src/main/java/com/jfinal/plugin/activerecord/Model.java

@@ -180,6 +180,12 @@ public abstract class Model<M extends Model> implements IRow<M>, Serializable {
 		return modifyFlag;
 	}
 	
+	void clearModifyFlag() {
+		if (modifyFlag != null) {
+			modifyFlag.clear();
+		}
+	}
+	
 	protected Config _getConfig() {
 		if (configName != null)
 			return DbKit.getConfig(configName);
@@ -603,7 +609,7 @@ public abstract class Model<M extends Model> implements IRow<M>, Serializable {
 			config.dialect.fillStatement(pst, paras);
 			result = pst.executeUpdate();
 			config.dialect.getModelGeneratedKey(this, pst, table);
-			_getModifyFlag().clear();
+			clearModifyFlag();
 			return result >= 1;
 		} catch (Exception e) {
 			throw new ActiveRecordException(e);
@@ -678,7 +684,7 @@ public abstract class Model<M extends Model> implements IRow<M>, Serializable {
 	public boolean update() {
 		filter(FILTER_BY_UPDATE);
 		
-		if (_getModifyFlag().isEmpty()) {
+		if (modifyFlag == null || modifyFlag.isEmpty()) {
 			return false;
 		}
 		
@@ -705,7 +711,7 @@ public abstract class Model<M extends Model> implements IRow<M>, Serializable {
 			conn = config.getConnection();
 			int result = Db.update(config, conn, sql.toString(), paras.toArray());
 			if (result >= 1) {
-				_getModifyFlag().clear();
+				clearModifyFlag();
 				return true;
 			}
 			return false;
@@ -907,7 +913,7 @@ public abstract class Model<M extends Model> implements IRow<M>, Serializable {
 		}
 		else {
 			this.attrs.clear();
-			this._getModifyFlag().clear();
+			this.clearModifyFlag();
 		}
 		return (M)this;
 	}
@@ -922,14 +928,14 @@ public abstract class Model<M extends Model> implements IRow<M>, Serializable {
 			Object keepIt = attrs.get(attr);
 			boolean keepFlag = _getModifyFlag().contains(attr);
 			attrs.clear();
-			_getModifyFlag().clear();
+			clearModifyFlag();
 			attrs.put(attr, keepIt);
 			if (keepFlag)
 				_getModifyFlag().add(attr);
 		}
 		else {
 			attrs.clear();
-			_getModifyFlag().clear();
+			clearModifyFlag();
 		}
 		return (M)this;
 	}
@@ -940,7 +946,7 @@ public abstract class Model<M extends Model> implements IRow<M>, Serializable {
 	 */
 	public M clear() {
 		attrs.clear();
-		_getModifyFlag().clear();
+		clearModifyFlag();
 		return (M)this;
 	}