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