当前位置: 首页 > 知识库问答 >
问题:

如何修复:将结果集映射到返回类型时引发错误

钱雅逸
2023-03-14
  @SqlUpdate(
      "UPDATE task_sync SET "
          + " is_active = false, "
          + " version = version+1 "
          + " WHERE task_id IN (<taskIdList>) "
          + " AND barcode IN (<barcodeList>) "
          + " AND is_active = true ")
  @GetGeneratedKeys("id")
  List<Long> deactivateTaskSyncByTaskIdInAndBarcodeList(
      @BindList("taskIdList") List<Long> taskIdList,
      @BindList("barcodeList") Set<String> barcodeList,
      @Bind("lastUpdatedById") Long lastUpdatedById);
UPDATE task_sync SET  is_active = false,  version = version+1  WHERE task_id IN (26)  AND barcode IN ('8606850380_0', '8696930120_0', '6907922280_0', '4605723180_0', '2354050010_0', '5259987660_0', '6392185330_0'
)  AND is_active = true 
RETURNING "id"

共有1个答案

郏景澄
2023-03-14

你在正确的轨道上。

要使其正常工作,您需要告诉Postgres您希望返回所有受影响行的id列。您可以通过将returning id;添加到查询的末尾来完成此操作。代码如下所示:

@SqlUpdate(
      "UPDATE task_sync SET "
          + " is_active = false, "
          + " version = version+1 "
          + " WHERE task_id IN (<taskIdList>) "
          + " AND barcode IN (<barcodeList>) "
          + " AND is_active = true RETURNING id;")
  @GetGeneratedKeys("id")
  List<Long> deactivateTaskSyncByTaskIdInAndBarcodeList(
      @BindList("taskIdList") List<Long> taskIdList,
      @BindList("barcodeList") Set<String> barcodeList,
      @Bind("lastUpdatedById") Long lastUpdatedById);

请注意,您还可以返回多列(例如:返回id、version;)或事件整行(例如:返回*;)。

 类似资料:
  • 我在寻找更“改进的方法”来实现这一点,我有一种方法,从一个id中获取所有记录,然后“映射”到一个类中,我有大约200个“标记”要映射,这将是一个非常长的if链。。。例子:

  • 我有一个用户类,有16个属性,比如名字,姓氏,出生日期,用户名,密码等...这些都存储在MySQL数据库中,当我想要检索用户时,我使用ResultSet。我想将每一列映射回用户属性,但我这样做的效率似乎非常低。例如,我正在做: 也就是说,我检索所有的列,然后通过将所有的列值插入用户构造函数来创建用户对象。 有人知道更快、更整洁的方法吗?

  • “userinfo”在活动的顶部声明为

  • 我有一个返回: 然后另一个用户这样使用它: 如何处理任何迭代中的失败情况? 我知道我可以使用,在这种情况下,错误结果将被忽略: 的迭代器根据成功状态具有0或1项,如果为0,将过滤掉它。 但是,我不想忽略错误,而是想让整个代码块停止并返回一个新错误(基于映射中出现的错误,或者只是转发现有错误)。 在Rust中如何最好地处理此问题?

  • 我试图使用http://modelmapper.org/表示DAO和模型类的库- 模型类- 道类- 公共类主题{私有字符串名称; 映射逻辑 ModelMapper似乎不起作用,它给我提供了主题类项目,而不是主题模型类项目

  • 我需要通过连接3个不同的表来获取6列。我在entity类的顶部将它们声明为NamedNativequery,并且使用了create named query method form JPA。当我尝试fo获取结果集时,我得到的是数组对象列表,而不是POJO类型的对象列表。为了将结果集映射到外部POJO,我应该定义任何外部映射吗?