Fix multiple key exception for sequence->contigFile and
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / SingleReadPherogramCollectionDetailSection.java
index e78980638e970fb9f457619b2a3e737ea4eb3030..5f887ef261f4aca3955a4223a942ff26b9391926 100644 (file)
@@ -13,8 +13,10 @@ import java.util.Collection;
 import java.util.Collections;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IMediaService;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.molecular.SingleRead;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
@@ -69,6 +71,14 @@ public class SingleReadPherogramCollectionDetailSection extends AbstractEntityCo
     public void addElement(Media element) {
         if(getEntity().getPherogram()==null){
             getEntity().setPherogram(element);
+                       /*
+                        * merge to avoid duplicate key exception
+                        * the exception seems to be caused by the two links to the Media object: 
+                        *  - SingleRead->pherogram (used to be not in the cache after saving)
+                        *  - MediaRepresentationPart->media
+                        *  Invoking merge() solves this problem
+                        */
+            CdmStore.getService(IMediaService.class).merge(element);
         }
     }