来自 table 的 OrmLite upsert
OrmLite upsert from table
目前 Save()
API 在传入集合时提供 upsert 行为,但在从另一个 table 插入时是否仍能正常工作?
我使用原始 PostgreSQL 更新插入的方式是这样的:
INSERT INTO customers (name, email)
SELECT name, email FROM other_table
ON CONFLICT (name)
DO
UPDATE SET email = EXCLUDED.email;
OrmLite 支持 ON CONFLICT
,但我看不出有什么方法可以使用 EXCLUDED
将其链接到更新中。
有没有办法在不将集合读入内存的情况下使用 fluent API 实现此类功能?
OrmLite 中没有对此的类型化 API 支持,并且可能不会,因为几乎不可能提供良好的类型化跨平台抽象来处理支持 Upsert 的 RDBMS 中此功能的不同功能和排列.
您将不得不使用 OrmLite Custom SQL APIs which you can use with OrmLite's typed Column<T>
and Table<T>
APIs 执行您想要的 Upsert SQL 查询,以在临时 SQL.[= 中包含类型化 Table 和列引用13=]
目前 Save()
API 在传入集合时提供 upsert 行为,但在从另一个 table 插入时是否仍能正常工作?
我使用原始 PostgreSQL 更新插入的方式是这样的:
INSERT INTO customers (name, email)
SELECT name, email FROM other_table
ON CONFLICT (name)
DO
UPDATE SET email = EXCLUDED.email;
OrmLite 支持 ON CONFLICT
,但我看不出有什么方法可以使用 EXCLUDED
将其链接到更新中。
有没有办法在不将集合读入内存的情况下使用 fluent API 实现此类功能?
OrmLite 中没有对此的类型化 API 支持,并且可能不会,因为几乎不可能提供良好的类型化跨平台抽象来处理支持 Upsert 的 RDBMS 中此功能的不同功能和排列.
您将不得不使用 OrmLite Custom SQL APIs which you can use with OrmLite's typed Column<T>
and Table<T>
APIs 执行您想要的 Upsert SQL 查询,以在临时 SQL.[= 中包含类型化 Table 和列引用13=]