Hi,
I've the following error that occur 
Code:
Error:  'datec.dbo.Affaire_datec.dbo.Affaire' Contains more than the maximum number of prefixes. Maximum is 3
when I execute this code
Code:
   public List<Affaire> findByCriteria(Affaire affaire, Acteur requerant, Auteur auteur, Commune commune,YaminaDistrict district) {
      List<Affaire> result = new ArrayList<Affaire>();
      LOG.error("findByCriteria(Affaire affaire, Acteur acteur, Auteur auteur)");
      // Get the actual session and open it
      Session session = getSession();
      session.getSessionFactory().openSession();
      Criteria criteria = session.createCriteria(Affaire.class);
      if (affaire.getNoAffaire() != null && affaire.getNoAffaire().length() > 0) {
         LOG.error("affaire.getNoAffaire()  search by affaire no " + affaire.getNoAffaire() + "\n");
         criteria.add(Expression.like("noAffaire", "%" +affaire.getNoAffaire()+ "%"));
      }   
      if (affaire.getType() != null) {
         Criteria manyToMany = criteria.createCriteria("type");
         manyToMany.add(Expression.eq("id",  affaire.getType().getId()));
         LOG.error("affaire.getType() not null\n");
      }
      if (commune != null) {
         criteria = createCriteriaForCommune(criteria, commune, district);
      }
      if (requerant != null) {
         criteria = createCriteriaForRequerant(criteria, requerant);
      }
      if (auteur != null) {
         criteria = createCriteriaForAuteur(criteria, auteur);
      }
      result = criteria.list();
      LOG.error("QUERY LIST AFFAIRE SIZE : " + result.size());
      session.close();
      return result;
      
   }
wihtin the following hibernate entity
Code:
package ch.btc.datec.yamina.model;
import java.io.Serializable;
import java.text.DecimalFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.hibernate.annotations.Cascade;
@Entity
@Table(name="datec.dbo.Affaire")
public class Affaire implements Serializable {
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   @Column(name = "ID")
   private long id;
   @Column(name = "NO_AFFAIRE", length = 40, nullable = true)
   private String noAffaire;
   @OneToOne(fetch = FetchType.EAGER)
   @Cascade ((org.hibernate.annotations.CascadeType.SAVE_UPDATE))
   private TypeAffaire type;
   @OneToMany(fetch = FetchType.EAGER)
   @Cascade ((org.hibernate.annotations.CascadeType.SAVE_UPDATE))
   private Set<Affaire> affairesLiees;
   @ManyToMany(fetch = FetchType.EAGER)
   @Cascade ((org.hibernate.annotations.CascadeType.SAVE_UPDATE))
   private Set<Commune> communes;
   
   @ManyToMany(fetch = FetchType.EAGER)
   @Cascade ((org.hibernate.annotations.CascadeType.SAVE_UPDATE))
   private Set<Auteur> auteurs;
   
   @ManyToMany(fetch = FetchType.EAGER)
   @Cascade ((org.hibernate.annotations.CascadeType.SAVE_UPDATE))
   private Set<Acteur> requerants;
   @ManyToMany(fetch = FetchType.EAGER)
   @Cascade ((org.hibernate.annotations.CascadeType.SAVE_UPDATE))
   private Set<Parcelle> parcelles;
   @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
   private ObjetDemande objetDemande;
   
   // TODO Add link to parcelles
   /**
    * 
    */
   public Affaire(boolean template) {
      communes = new HashSet<Commune>();
      affairesLiees = new HashSet<Affaire>();
      auteurs = new HashSet<Auteur>();
      requerants = new HashSet<Acteur>();
      parcelles = new HashSet<Parcelle>();
      if (template) {
      noAffaire = generateUniqueId();
      }
   }
   /**
    * 
    */
   public Affaire() {
      this(false);
   }
   private static int count = 0;
   
   
   /**
    * @param affairesLiees
    * @param auteurs
    * @param communes
    * @param id
    * @param noAffaire
    * @param objetDemande
    * @param requerants
    * @param type
    */
   public Affaire(Set<Affaire> affairesLiees, Set<Auteur> auteurs,
         Set<Commune> communes, Set<Parcelle> parcelles, long id, String noAffaire,
         ObjetDemande objetDemande, Set<Acteur> requerants, TypeAffaire type) {
      this.affairesLiees = affairesLiees;
      this.auteurs = auteurs;
      this.parcelles = parcelles;
      this.communes = communes;
      this.id = id;
      this.noAffaire = noAffaire;
      this.objetDemande = objetDemande;
      this.requerants = requerants;
      this.type = type;
   }
   /**
    * @return the id
    */
   public long getId() {
      return id;
   }
   /**
    * @param id
    *            the id to set
    */
   public void setId(long id) {
      this.id = id;
   }
   /**
    * @return the noAffaire
    */
   public String getNoAffaire() {
      return noAffaire;
   }
   /**
    * @param noAffaire
    *            the noAffaire to set
    */
   public void setNoAffaire(String noAffaire) {
      this.noAffaire = noAffaire;
   }
   /**
    * @return the type
    */
   public TypeAffaire getType() {
      return type;
   }
   /**
    * @param type
    *            the type to set
    */
   public void setType(TypeAffaire type) {
      this.type = type;
   }
   /**
    * @return the affairesLiees
    */
   public Set<Affaire> getAffairesLiees() {
      return affairesLiees;
   }
   /**
    * @param affairesLiees
    *            the affairesLiees to set
    */
   public void setAffairesLiees(Set<Affaire> affairesLiees) {
      this.affairesLiees = affairesLiees;
   }
   /**
    * @return the communes
    */
   public Set<Commune> getCommunes() {
      return communes;
   }
   /**
    * @param communes
    *            the communes to set
    */
   public void setCommunes(Set<Commune> communes) {
      this.communes = communes;
   }
   /**
    * @return the auteurs
    */
   public Set<Auteur> getAuteurs() {
      return auteurs;
   }
   /**
    * @param auteurs
    *            the auteurs to set
    */
   public void setAuteurs(Set<Auteur> auteurs) {
      this.auteurs = auteurs;
   }
   /**
    * @return the requerants
    */
   public Set<Acteur> getRequerants() {
      return requerants;
   }
   /**
    * @param requerants
    *            the requerants to set
    */
   public void setRequerants(Set<Acteur> requerants) {
      this.requerants = requerants;
   }
   /**
    * @return the objetDemande
    */
   public ObjetDemande getObjetDemande() {
      return objetDemande;
   }
   /**
    * @param objetDemande
    *            the objetDemande to set
    */
   public void setObjetDemande(ObjetDemande objetDemande) {
      this.objetDemande = objetDemande;
   }
   
   // delegate methods
   /**
    * @param affaireLiee
    * @return
    * @see java.util.Set#add(java.lang.Object)
    */
   public boolean addAffaireLiee(Affaire affaireLiee) {
      return affairesLiees.add(affaireLiee);
   }
   /**
    * 
    * @see java.util.Set#clear()
    */
   public void clearAffairesLiees() {
      affairesLiees.clear();
   }
   /**
    * @param affaireLiee
    * @return
    * @see java.util.Set#contains(java.lang.Object)
    */
   public boolean containsAffaireLiee(Affaire affaireLiee) {
      return affairesLiees.contains(affaireLiee);
   }
   /**
    * @return
    * @see java.util.Set#iterator()
    */
   public Iterator<Affaire> iteratorAffairesLiees() {
      return affairesLiees.iterator();
   }
   /**
    * @param affaireLiee
    * @return
    * @see java.util.Set#remove(java.lang.Object)
    */
   public boolean removeAffaireLiee(Affaire affaireLiee) {
      return affairesLiees.remove(affaireLiee);
   }
   /**
    * @return
    * @see java.util.Set#size()
    */
   public int sizeAffairesLiees() {
      return affairesLiees.size();
   }
   
   
   
   
   
   
   /**
    * @param e
    * @return
    * @see java.util.Set#add(java.lang.Object)
    */
   public boolean addAuteur(Auteur e) {
      return auteurs.add(e);
   }
   /**
    * 
    * @see java.util.Set#clear()
    */
   public void clearAuteurs() {
      auteurs.clear();
   }
   /**
    * @param o
    * @return
    * @see java.util.Set#contains(java.lang.Object)
    */
   public boolean containsAuteur(Object o) {
      return auteurs.contains(o);
   }
   /**
    * @param o
    * @return
    * @see java.util.Set#contains(java.lang.Object)
    */
   public boolean containsParcell(Object o) {
      return parcelles.contains(o);
   }
   /**
    * @return
    * @see java.util.Set#iterator()
    */
   public Iterator<Auteur> iteratorAuteurs() {
      return auteurs.iterator();
   }
   /**
    * @return
    * @see java.util.Set#iterator()
    */
   public Iterator<Auteur> iteratorParcelles() {
      return auteurs.iterator();
   }
   /**
    * @param o
    * @return
    * @see java.util.Set#remove(java.lang.Object)
    */
   public boolean removeAuteur(Object o) {
      return auteurs.remove(o);
   }
   
   /**
    * @param o
    * @return
    * @see java.util.Set#remove(java.lang.Object)
    */
   public boolean removeParcelle(Object o) {
      return parcelles.remove(o);
   }
   
   /**
    * @return
    * @see java.util.Set#size()
    */
   public int sizeAuteur() {
      return auteurs.size();
   }
   
   /**
    * @return
    * @see java.util.Set#size()
    */
   public int sizeParcelle() {
      return parcelles.size();
   }
   
   
   
   
   /**
    * @param e
    * @return
    * @see java.util.Set#add(java.lang.Object)
    */
   public boolean addParcelle(Parcelle p) {
      return parcelles.add(p);
   }
   
   /**
    * @param e
    * @return
    * @see java.util.Set#add(java.lang.Object)
    */
   public boolean addCommune(Commune e) {
      return communes.add(e);
   }
   /**
    * 
    * @see java.util.Set#clear()
    */
   public void clearCommunes() {
      communes.clear();
   }
   /**
    * 
    * @see java.util.Set#clear()
    */
   public void clearParcelles() {
      parcelles.clear();
   }
   /**
    * @param o
    * @return
    * @see java.util.Set#contains(java.lang.Object)
    */
   public boolean containsCommune(Object o) {
      return communes.contains(o);
   }
   /**
    * @param o
    * @return
    * @see java.util.Set#contains(java.lang.Object)
    */
   public boolean containsParcelle(Object o) {
      return parcelles.contains(o);
   }
   /**
    * @return
    * @see java.util.Set#iterator()
    */
   public Iterator<Commune> iteratorCommunes() {
      return communes.iterator();
   }
   /**
    * @param o
    * @return
    * @see java.util.Set#remove(java.lang.Object)
    */
   public boolean removeCommune(Object o) {
      return communes.remove(o);
   }
   /**
    * @return
    * @see java.util.Set#size()
    */
   public int sizeCommune() {
      return communes.size();
   }   
   
   /**
    * @param e
    * @return
    * @see java.util.Set#add(java.lang.Object)
    */
   public boolean addRequerant(Acteur e) {
      return requerants.add(e);
   }
   /**
    * 
    * @see java.util.Set#clear()
    */
   public void clearRequerants() {
      requerants.clear();
   }
   /**
    * @param o
    * @return
    * @see java.util.Set#contains(java.lang.Object)
    */
   public boolean containsRequerant(Object o) {
      return requerants.contains(o);
   }
   /**
    * @return
    * @see java.util.Set#iterator()
    */
   public Iterator<Acteur> iteratorRequerants() {
      return requerants.iterator();
   }
   /**
    * @param o
    * @return
    * @see java.util.Set#remove(java.lang.Object)
    */
   public boolean removeRequerant(Object o) {
      return requerants.remove(o);
   }
   /**
    * @return
    * @see java.util.Set#size()
    */
   public int sizeRequerants() {
      return requerants.size();
   }
   
   public void incrementCounter() {
      count++;
   }
   
   
    /* (non-Javadoc)
    * 
    * @see java.lang.Object#equals(java.lang.Object)
    */
   @Override
   public boolean equals(Object obj) {
      return EqualsBuilder.reflectionEquals(this, obj);
   }
   /*
    * (non-Javadoc)
    * 
    * @see java.lang.Object#equals(java.lang.Object)
    */
   @Override
   public int hashCode() {
      return HashCodeBuilder.reflectionHashCode(this);
   }
   /*
    * (non-Javadoc)
    * 
    * @see java.lang.Object#equals(java.lang.Object)
    */
   @Override
   public String toString() {
      return ToStringBuilder.reflectionToString(this);
   }
   /**
    * Generate an unique Affaire's number for each Affaire (|A|A|district|XXXX).
    * @return the 2 last number of the year + the 1 district number + a generate number (4 position) 
    */
   private String generateUniqueId() {
      String newId = "";
      int year = new Date().getYear();
      
      // Add year
      newId += new DecimalFormat("00").format((year % 100));
      
      // Add district
      newId += 9; // TODO district number from db
      
      // Add generated part
      newId += new DecimalFormat("0000").format(count + 1);
      
      return newId; 
   }
   public Set<Parcelle> getParcelles() {
      System.out.println("GET PARCELLES CALLED\n");
      return parcelles;
   }
   public void setParcelles(Set<Parcelle> parcelles) {
      this.parcelles = parcelles;
   }
}
Any idea what could be wrong ?
Thanks in advance