我有一个源对象,它具有:
public class Source {
public Map<String,DTO>getDTOs();
}
Run Code Online (Sandbox Code Playgroud)
和目标对象:
public class Destination {
public List<DTO> getDTOs();
public void setDTOs(List<DTO> dtos);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用Dozer为我做这个映射,但我有点难过.我对单元测试和文档进行了分类,但我的挑战是我不确定我在寻找什么.
我正在尝试在 jOOQ 中为 Postgres 执行 upsert 风格的语句。我运行的框架负责处理这种特定情况下的并发问题,因此我并不担心这一点。我仅使用 jOOQ 来创建 SQL,实际执行是通过 Spring 的 JdbcTemplate 和 BeanPropertySqlParameterSource 完成的。
我决定采用两步“插入..不存在的地方”/“更新..”过程。
我的SQL是:
insert into mytable (my_id, col1, col2) select :myId,
:firstCol, :secondCol where not exists (select 1
from mytable where my_id = :myId)
Run Code Online (Sandbox Code Playgroud)
我正在使用 Postgres 9.4、jOOQ 3.5。我不知道如何表达 select 中的 jOOQ 参数和 jOOQ 中的“where not办法”子句。
更改编程语言或数据库的建议在我的情况下不可行。