我想更新行(如果存在),否则将其插入。 jooq中有像hibernate的saveOrUpdate这样的便捷方法吗?
当前,我正在检查数据库是否存在,然后运行更新查询,否则将其插入。
答案 0 :(得分:2)
您可以使用jOOQ支持的不同UPSERT
语句之一,具体取决于您的RDBMS:
INSERT .. ON DUPLICATE KEY UPDATE
,由MySQL本地支持。可以使用以下两个选项对其进行仿真INSERT .. ON CONFLICT DO UPDATE
。可以使用以下选项对其进行仿真MERGE
,许多RDBMS和SQL标准都提供本机支持答案 1 :(得分:0)
From this Stack Overflow answer here
如果您从数据库中读取记录并调用 record.store(),您将 具有与休眠 saveOrUpdate 方法相同的行为,有效 完美!
但是在大多数情况下,您不会从 数据库,您将收到来自控制器或该视图的记录 例如,在这种情况下,方法 record.store()不会更新