diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java index a58c5b257..b4c15b1a7 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/AttachmentImpl.java @@ -21,11 +21,6 @@ public class AttachmentImpl implements Attachment { private Timestamp modified; private Classification classification; private ObjectReference objectReference; - private String porCompany; - private String porSystem; - private String porSystemInstance; - private String porType; - private String porValue; private String channel; private Timestamp received; private Map customAttributes = Collections.emptyMap();; @@ -119,46 +114,6 @@ public class AttachmentImpl implements Attachment { this.customAttributes = customAttributes; } - public String getPorCompany() { - return porCompany; - } - - public void setPorCompany(String porCompany) { - this.porCompany = porCompany; - } - - public String getPorSystem() { - return porSystem; - } - - public void setPorSystem(String porSystem) { - this.porSystem = porSystem; - } - - public String getPorSystemInstance() { - return porSystemInstance; - } - - public void setPorSystemInstance(String porSystemInstance) { - this.porSystemInstance = porSystemInstance; - } - - public String getPorType() { - return porType; - } - - public void setPorType(String porType) { - this.porType = porType; - } - - public String getPorValue() { - return porValue; - } - - public void setPorValue(String porValue) { - this.porValue = porValue; - } - @Override public String toString() { StringBuilder builder = new StringBuilder(); @@ -172,16 +127,6 @@ public class AttachmentImpl implements Attachment { builder.append(modified); builder.append(", classification="); builder.append(classification); - builder.append(", porCompany="); - builder.append(porCompany); - builder.append(", porSystem="); - builder.append(porSystem); - builder.append(", porSystemInstance="); - builder.append(porSystemInstance); - builder.append(", porType="); - builder.append(porType); - builder.append(", porValue="); - builder.append(porValue); builder.append(", objectReference="); builder.append(objectReference); builder.append(", channel="); diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java index cf2628d5c..4625b08a9 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskImpl.java @@ -41,11 +41,6 @@ public class TaskImpl implements Task { private boolean isTransferred; // All objects have to be serializable private Map customAttributes = Collections.emptyMap(); - private String porCompany; // auxiliary field needed to avoid 2nd query for primaryObjRef in TaskMapper - private String porSystem; // auxiliary field needed to avoid 2nd query for primaryObjRef in TaskMapper - private String porSystemInstance; // auxiliary field needed to avoid 2nd query for primaryObjRef in TaskMapper - private String porType; // auxiliary field needed to avoid 2nd query for primaryObjRef in TaskMapper - private String porValue; // auxiliary field needed to avoid 2nd query for primaryObjRef in TaskMapper private List attachments; private String custom1; private String custom2; @@ -392,46 +387,6 @@ public class TaskImpl implements Task { this.classification = classification; } - public String getPorCompany() { - return porCompany; - } - - public void setPorCompany(String porCompany) { - this.porCompany = porCompany; - } - - public String getPorSystem() { - return porSystem; - } - - public void setPorSystem(String porSystem) { - this.porSystem = porSystem; - } - - public String getPorSystemInstance() { - return porSystemInstance; - } - - public void setPorSystemInstance(String porSystemInstance) { - this.porSystemInstance = porSystemInstance; - } - - public String getPorType() { - return porType; - } - - public void setPorType(String porType) { - this.porType = porType; - } - - public String getPorValue() { - return porValue; - } - - public void setPorValue(String porValue) { - this.porValue = porValue; - } - @Override public String toString() { StringBuilder builder = new StringBuilder(); @@ -481,16 +436,6 @@ public class TaskImpl implements Task { builder.append(isTransferred); builder.append(", customAttributes="); builder.append(customAttributes); - builder.append(", porCompany="); - builder.append(porCompany); - builder.append(", porSystem="); - builder.append(porSystem); - builder.append(", porSystemInstance="); - builder.append(porSystemInstance); - builder.append(", porType="); - builder.append(porType); - builder.append(", porValue="); - builder.append(porValue); builder.append(", attachments="); builder.append(attachments); builder.append(", custom1="); diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java index 14458647d..ec420b212 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java @@ -203,7 +203,6 @@ public class TaskQueryImpl implements TaskQuery { checkAuthorization(); List tasks = taskanaEngineImpl.getSqlSession().selectList(LINK_TO_MAPPER, this); for (TaskImpl taskImpl : tasks) { - TaskServiceImpl.setPrimaryObjRef(taskImpl); try { Classification classification = this.classificationService.getClassificationByTask(taskImpl); taskImpl.setClassification(classification); @@ -234,7 +233,6 @@ public class TaskQueryImpl implements TaskQuery { RowBounds rowBounds = new RowBounds(offset, limit); List tasks = taskanaEngineImpl.getSqlSession().selectList(LINK_TO_MAPPER, this, rowBounds); for (TaskImpl taskImpl : tasks) { - TaskServiceImpl.setPrimaryObjRef(taskImpl); try { Classification classification = this.classificationService.getClassificationByTask(taskImpl); taskImpl.setClassification(classification); @@ -263,7 +261,6 @@ public class TaskQueryImpl implements TaskQuery { taskanaEngineImpl.openConnection(); checkAuthorization(); taskImpl = taskanaEngineImpl.getSqlSession().selectOne(LINK_TO_MAPPER, this); - TaskServiceImpl.setPrimaryObjRef(taskImpl); try { Classification classification = this.classificationService.getClassificationByTask(taskImpl); taskImpl.setClassification(classification); diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskServiceImpl.java index 8696f0a28..aabc78b07 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskServiceImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskServiceImpl.java @@ -202,10 +202,7 @@ public class TaskServiceImpl implements TaskService { taskanaEngineImpl.openConnection(); result = taskMapper.findById(id); if (result != null) { - setPrimaryObjRef(result); - List attachments = setAttachmentObjRef( - attachmentMapper.findAttachmentsByTaskId(result.getId())); - result.setAttachments(attachments); + setAttachments(result); Classification classification; try { classification = this.classificationService.getClassificationByTask(result); @@ -305,7 +302,6 @@ public class TaskServiceImpl implements TaskService { workbasketService.checkAuthorization(workbasketKey, WorkbasketAuthorization.READ); List tasks = taskMapper.findTasksByWorkbasketIdAndState(workbasketKey, taskState); tasks.stream().forEach(t -> { - TaskServiceImpl.setPrimaryObjRef(t); results.add(t); }); } finally { @@ -444,31 +440,15 @@ public class TaskServiceImpl implements TaskService { return new AttachmentImpl(); } - static void setPrimaryObjRef(TaskImpl task) { - ObjectReference objRef = new ObjectReference(); - objRef.setCompany(task.getPorCompany()); - objRef.setSystem(task.getPorSystem()); - objRef.setSystemInstance(task.getPorSystemInstance()); - objRef.setType(task.getPorType()); - objRef.setValue(task.getPorValue()); - task.setPrimaryObjRef(objRef); - } - - private List setAttachmentObjRef(List attachments) { - List results = new ArrayList<>(); - if (attachments != null && !attachments.isEmpty()) { - for (AttachmentImpl attachment : attachments) { - ObjectReference objRef = new ObjectReference(); - objRef.setCompany(attachment.getPorCompany()); - objRef.setSystem(attachment.getPorSystem()); - objRef.setSystemInstance(attachment.getPorSystemInstance()); - objRef.setType(attachment.getPorType()); - objRef.setValue(attachment.getPorValue()); - attachment.setObjectReference(objRef); - results.add(attachment); + private void setAttachments(TaskImpl result) { + List attachmentImpls = attachmentMapper.findAttachmentsByTaskId(result.getId()); + List attachments = new ArrayList<>(); + if (attachmentImpls != null && !attachmentImpls.isEmpty()) { + for (AttachmentImpl attImpl : attachmentImpls) { + attachments.add(attImpl); } } - return results; + result.setAttachments(attachments); } private void validateObjectReference(ObjectReference objRef, String objRefType, String objName) diff --git a/lib/taskana-core/src/main/java/pro/taskana/model/mappings/AttachmentMapper.java b/lib/taskana-core/src/main/java/pro/taskana/model/mappings/AttachmentMapper.java index 1695df301..b750b3338 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/model/mappings/AttachmentMapper.java +++ b/lib/taskana-core/src/main/java/pro/taskana/model/mappings/AttachmentMapper.java @@ -37,11 +37,11 @@ public interface AttachmentMapper { @Result(property = "modified", column = "MODIFIED"), @Result(property = "classification", column = "CLASSIFICATION_KEY", javaType = Classification.class, one = @One(select = CLASSIFICATION_FINDBYID)), - @Result(property = "porCompany", column = "REF_COMPANY"), - @Result(property = "porSystem", column = "REF_SYSTEM"), - @Result(property = "porSystemInstance", column = "REF_INSTANCE"), - @Result(property = "porType", column = "REF_TYPE"), - @Result(property = "porValue", column = "REF_VALUE"), + @Result(property = "objectReference.company", column = "REF_COMPANY"), + @Result(property = "objectReference.system", column = "REF_SYSTEM"), + @Result(property = "objectReference.systemInstance", column = "REF_INSTANCE"), + @Result(property = "objectReference.type", column = "REF_TYPE"), + @Result(property = "objectReference.value", column = "REF_VALUE"), @Result(property = "channel", column = "CHANNEL"), @Result(property = "received", column = "RECEIVED"), @Result(property = "customAttributes", column = "CUSTOM_ATTRIBUTES", jdbcType = JdbcType.BLOB, diff --git a/lib/taskana-core/src/main/java/pro/taskana/model/mappings/QueryMapper.java b/lib/taskana-core/src/main/java/pro/taskana/model/mappings/QueryMapper.java index 53dad68cd..4a1af3413 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/model/mappings/QueryMapper.java +++ b/lib/taskana-core/src/main/java/pro/taskana/model/mappings/QueryMapper.java @@ -51,7 +51,7 @@ public interface QueryMapper { + "AND (t.CUSTOM_1 IN(#{item}) OR t.CUSTOM_2 IN(#{item}) OR t.CUSTOM_3 IN(#{item}) OR t.CUSTOM_4 IN(#{item}) OR t.CUSTOM_5 IN(#{item}) OR t.CUSTOM_6 IN(#{item}) OR t.CUSTOM_7 IN(#{item}) OR t.CUSTOM_8 IN(#{item}) OR t.CUSTOM_9 IN(#{item}) OR t.CUSTOM_10 IN(#{item})) " + "" + "") - @Results(value = { @Result(property = "id", column = "ID"), + @Results(value = {@Result(property = "id", column = "ID"), @Result(property = "created", column = "CREATED"), @Result(property = "claimed", column = "CLAIMED"), @Result(property = "completed", column = "COMPLETED"), @@ -69,11 +69,11 @@ public interface QueryMapper { @Result(property = "businessProcessId", column = "BUSINESS_PROCESS_ID"), @Result(property = "parentBusinessProcessId", column = "PARENT_BUSINESS_PROCESS_ID"), @Result(property = "owner", column = "OWNER"), - @Result(property = "porCompany", column = "POR_COMPANY"), - @Result(property = "porSystem", column = "POR_SYSTEM"), - @Result(property = "porSystemInstance", column = "POR_INSTANCE"), - @Result(property = "porType", column = "POR_TYPE"), - @Result(property = "porValue", column = "POR_VALUE"), + @Result(property = "primaryObjRef.company", column = "POR_COMPANY"), + @Result(property = "primaryObjRef.system", column = "POR_SYSTEM"), + @Result(property = "primaryObjRef.systemInstance", column = "POR_INSTANCE"), + @Result(property = "primaryObjRef.type", column = "POR_TYPE"), + @Result(property = "primaryObjRef.value", column = "POR_VALUE"), @Result(property = "isRead", column = "IS_READ"), @Result(property = "isTransferred", column = "IS_TRANSFERRED"), @Result(property = "custom1", column = "CUSTOM_1"), @@ -85,7 +85,7 @@ public interface QueryMapper { @Result(property = "custom7", column = "CUSTOM_7"), @Result(property = "custom8", column = "CUSTOM_8"), @Result(property = "custom9", column = "CUSTOM_9"), - @Result(property = "custom10", column = "CUSTOM_10") }) + @Result(property = "custom10", column = "CUSTOM_10")}) List queryTasks(TaskQueryImpl taskQuery); @Select("") - @Results({ @Result(property = "id", column = "ID"), + @Results({@Result(property = "id", column = "ID"), @Result(property = "key", column = "KEY"), @Result(property = "category", column = "CATEGORY"), @Result(property = "type", column = "TYPE"), @Result(property = "domain", column = "DOMAIN"), @Result(property = "name", column = "NAME"), - @Result(property = "validUntil", column = "VALID_UNTIL") }) + @Result(property = "validUntil", column = "VALID_UNTIL")}) List queryClassification(ClassificationQueryImpl classificationQuery); @Select("