@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"
你在正确的轨道上。
要使其正常工作,您需要告诉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,我应该定义任何外部映射吗?