2023-10-16
|
ZH
public static void override() throws Exception{ String tab = "tab_override"; Table table = service.metadata().table(tab); if(null != table){ serv
2023-10-20
|
ZH
service.insert(table, set, new DefaultConfigStore().override(true, "ID")); service.insert(table, set, new DefaultConfigStore().override(false, "ID"))
2023-10-21
|
ZH
在数据中台、数据同步场景中经常有这种需求,如果数量少可以清空后再全量同步一次,这样最省心。也可以插入前检测一下数据是否存在。 在如果数量很大,以方式显然不可取,如果自己实现一般是通过索引(性能)+存储过程(一次交互)实现 当然许多数据库都对这种场景提供了原生支持。用过ORM实现过这种功能的人一定知道
2023-10-16
|
ZH
发现有个项目里这样写 String sql = SELECT * FROM CRM_USER LIMIT (:page) OFFSET (:page-1)*:vol service.querys(sql, configs) 在Pg里可以正常执行,但返回的DataSet中不包含分页的Pgae
2023-10-12
|
ZH
当执行 INSERT 操作时,如果数据表中不存在对应的记录,执行插入操作;如果数据表中存在对应的记录,则执行更新操作 是否存在可以根据 1.指定列判断 或者2 唯一约束名 Table table = service.metadata().table("CRM_USER"); if(
2023-10-10
|
ZH
在insert/update时如果提供的是List<Map>或Map参数时有可能因为Map的key与列名不一致导致取值失败的问题。因为map严格区分大小写,put("id",1)用get("ID")当然是取不出来了 如果大小写不一致,可以转换成DataSet<DataRow>
2023-10-02
|
ZH
先用mysql数据源获取表结构 Table table = mysql_service.metadata()table("crm_user") 再用pg数据源创建表 pg_service.ddl().create(table) 需要注意的是:schema和catalog需要根据情况调整一下,一般设置
2023-09-28
|
ZH
每个数据库需要 1 个anyline提供的适配品 + 1 个数据库官方的驱动 适配器参考以下,打开适配器可以查看官方驱动的依赖,因为是provided形式的依赖,需要复制到自己项目中去 org.anyline下 anyline-data
2023-09-27
|
ZH
默认情况下可以通过ConfigTable设置全局变量。ConfigStore也提供了类似的配置项,仅对当前流程有效
2023-09-22
|
ZH
在注册动态数据源时,如果key相同会覆盖原来的数据源,但是需要打开spring配置spring.main.allow-bean-definition-overriding=true 否则会抛出异常Invalid bean definition with name 'anyline.jdbc.temp