From 11bdceedc532368e20c4b7bf520b4cd1744c5011 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 15 Jul 2011 14:05:28 +0200 Subject: [PATCH] [Bug #1108] Fix bug There shouldn't be cascade from order element to labels because labels are shared among orders. Due to this OptimistLockingExceptions were being caused. Now the newly created label is explicitly saved instead of relaying in the cascading behavior. FEA: ItEr75S04BugFixing --- .../business/orders/entities/Orders.hbm.xml | 3 +-- .../orders/labels/AssignedLabelsModel.java | 21 ++++++++++++++++--- .../AssignedLabelsToOrderElementModel.java | 9 -------- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml index f5a73b8e5..ae0425553 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml @@ -26,8 +26,7 @@ - - + diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/labels/AssignedLabelsModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/labels/AssignedLabelsModel.java index 2392de418..deeb4c16d 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/labels/AssignedLabelsModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/labels/AssignedLabelsModel.java @@ -24,6 +24,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; +import org.navalplanner.business.common.IAdHocTransactionService; +import org.navalplanner.business.common.IOnTransaction; import org.navalplanner.business.labels.daos.ILabelDAO; import org.navalplanner.business.labels.entities.Label; import org.navalplanner.business.labels.entities.LabelType; @@ -41,6 +43,9 @@ public abstract class AssignedLabelsModel implements IAssignedLabelsModel private T element; + @Autowired + private IAdHocTransactionService adHocTransactionService; + @Transactional(readOnly = true) public void init(T element) { this.element = element; @@ -121,9 +126,19 @@ public abstract class AssignedLabelsModel implements IAssignedLabelsModel return result; } - public Label createLabel(String labelName, LabelType labelType) { - Label label = Label.create(labelName); - label.setType(labelType); + public Label createLabel(final String labelName, + final LabelType labelType) { + Label label = adHocTransactionService + .runOnAnotherTransaction(new IOnTransaction