insert/update过程中列的控制
最后更新:2024-05-10 05:30:01
|
状态:未完成
默认情况下只会处理不为空的列,更新时不更新主键
由于数据来源多种多样,有可能是从别的表中查询的也有可能从第三系统获取或java中生成,
同一组数据可能需要同时插入不同的表,但列不同,这时需要设置insert/update的列
可以按以下规则设置,insert与update规则一样
如果有ConfigStore也可以通过ConfigStore.columns(String ... columns)或columns(List<String> colums)设置
-表示忽略 +表示必选
由于数据来源多种多样,有可能是从别的表中查询的也有可能从第三系统获取或java中生成,
同一组数据可能需要同时插入不同的表,但列不同,这时需要设置insert/update的列
可以按以下规则设置,insert与update规则一样
如果有ConfigStore也可以通过ConfigStore.columns(String ... columns)或columns(List<String> colums)设置
-表示忽略 +表示必选
DataRow row = new DataRow(); //这里只是用DataRow举例,可以是Entity或Collection row.put("id",1); row.put("name","Z"); row.put("code", null); //默认只插入不为空的列 //INSERT INTO CRM_USER(ID,NAME) VALUES (?,?) service.insert("CRM_USER", row); row.put("id",2); //-表示忽略 +表示必选 其他列正常处理 //INSERT INTO CRM_USER(NAME,CODE) VALUES (?,?) service.insert("CRM_USER", row, "-id","+code"); //只插入name 国为没有-+出现,所以不处理其他列 //INSERT INTO CRM_USER(NAME) VALUES (?) service.insert("CRM_USER", row, "name"); //INSERT INTO CRM_USER(NAME) VALUES (?) service.insert("CRM_USER", row, "-id");
需要区别的是 如果在指定的列中没有出现+-则只处理指定的这几列,其他所有未指定的列忽略,反之如果出现了+或-则其他未指定的列按默认规则处理
public static boolean IS_UPDATE_NULL_COLUMN = false ; // DataRow是否更新nul值的列(针对DataRow) public static boolean IS_UPDATE_EMPTY_COLUMN = false ; // DataRow是否更新空值的列 public static boolean IS_INSERT_NULL_COLUMN = false ; // DataRow是否插入nul值的列 public static boolean IS_INSERT_EMPTY_COLUMN = false ; // DataRow是否插入空值的列 public static boolean IS_UPDATE_NULL_FIELD = false ; // Entity是否更新nul值的属性(针对Entity) public static boolean IS_UPDATE_EMPTY_FIELD = false ; // Entity是否更新空值的属性 public static boolean IS_INSERT_NULL_FIELD = false ; // Entity是否更新nul值的属性 public static boolean IS_INSERT_EMPTY_FIELD = false ; // Entity是否更新空值的属性