Sfoglia il codice sorgente

dmp: rwd 修复分表后删除数据失败的问题

yaoll 4 anni fa
parent
commit
88fe32b2ec

+ 9 - 3
dmp-rwd/src/main/java/com/persagy/dmp/rwd/service/RelationInstanceService.java

@@ -139,11 +139,17 @@ public class RelationInstanceService extends BaseService {
 		criteria.add(RwdConstants.OBJECT_GROUPCODE, DmpParameterStorage.getGroupCode());
 		criteria.add(RwdConstants.OBJECT_PROJECTID, DmpParameterStorage.getProjectId());
 		criteria.setWithoutCount(true);
-		PagedResponse<RelationInstance> resp = criteriaUtils.query(QRelationInstance.relationInstance, this::parse, criteria);
+		QRelationInstance qt = QRelationInstance.relationInstance;
+		PagedResponse<RelationInstance> resp = criteriaUtils.query(qt, this::parse, criteria);
 		List<RelationInstance> data = resp.getData();
 		if (data != null && data.size() > 0) {
-			relationInstanceRepository.deleteInBatch(data);
-			response.add("deleteCount", data.size());
+			int cnt = 0;
+			for (RelationInstance datum : data) {
+				long execute = jpaQueryFactory.delete(qt).where(qt.groupCode.eq(DmpParameterStorage.getGroupCode()), qt.projectId.eq(DmpParameterStorage.getProjectId()), qt.id.eq(datum.getId())).execute();
+				cnt += execute;
+			}
+			response.add("deleteCount", cnt);
+
 			String now = DateUtils.format(new Date());
 			for (RelationInstance relation : data) {
 				DmpMessage message = new DmpMessage(RwdConstants.MESSAGE_INSTANCE_RELATION_DELETE, null);