Hi,
I've an application that works fine within a properties based data source.
But when I'm trying to use a jndi connection I've to add annotation to my entity that maps the column and table name and relation of my entity within my table
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;
}
}
but once I started my server I got the following error message
Code:
com.inet.tds.be: Msg 117, Level 15, State 1, Line 1, Sqlstate 01000
[NDSQL02\DEV]Le nom de objet 'datec.dbo.Affaire_datec.dbo.Affaire'
Error: Contains more than the maximum number
of prefixes. Maximum is 3
any idea ?
Thanks