Added Cascade.MERGE for some, not all relationships where Cascade.SAVE_UPDATE exists...
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / model / agent / Team.java
index dd51c06c70bcdda2d95021cb6304a94eacd4d704..19e9728a702c202659b2e081f445732889e13331 100644 (file)
@@ -15,6 +15,7 @@ import java.util.List;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.ManyToMany;
+import javax.persistence.Transient;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
@@ -25,7 +26,12 @@ import javax.xml.bind.annotation.XmlSchemaType;
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.log4j.Logger;
+import org.hibernate.annotations.Cascade;
+import org.hibernate.annotations.CascadeType;
+import org.hibernate.annotations.IndexColumn;
 import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Indexed;
+import org.springframework.beans.factory.annotation.Configurable;
 
 import eu.etaxonomy.cdm.strategy.cache.agent.TeamDefaultCacheStrategy;
 
@@ -55,7 +61,9 @@ import eu.etaxonomy.cdm.strategy.cache.agent.TeamDefaultCacheStrategy;
 })
 @XmlRootElement
 @Entity
+@Indexed(index = "eu.etaxonomy.cdm.model.agent.AgentBase")
 @Audited
+@Configurable
 public class Team extends TeamOrPersonBase<Team> {
        private static final long serialVersionUID = 97640416905934622L;
        public static final Logger logger = Logger.getLogger(Team.class);
@@ -69,7 +77,9 @@ public class Team extends TeamOrPersonBase<Team> {
     @XmlElement(name = "TeamMember")
     @XmlIDREF
     @XmlSchemaType(name = "IDREF")
-    @ManyToMany(fetch = FetchType.LAZY)
+    @IndexColumn(name="sortIndex", base = 0)
+       @ManyToMany(fetch = FetchType.LAZY)
+       @Cascade(CascadeType.SAVE_UPDATE)
        private List<Person> teamMembers = new ArrayList<Person>();
        
        
@@ -150,10 +160,10 @@ public class Team extends TeamOrPersonBase<Team> {
         * 
         * @return  a string which identifies <i>this</i> team
         */
-       @Override
-       public String generateTitle() {
-               return cacheStrategy.getTitleCache(this);
-       }
+//     @Override
+//     public String generateTitle() {
+//             return cacheStrategy.getTitleCache(this);
+//     }
        
        
        /**
@@ -171,6 +181,7 @@ public class Team extends TeamOrPersonBase<Team> {
         * @return  a string which identifies <i>this</i> team for nomenclature
         */
        @Override
+       @Transient
        public String getNomenclaturalTitle() {
                if (protectedNomenclaturalTitleCache == PROTECTED){
                        return this.nomenclaturalTitle;