Bonjour,
Je travaille sur un projet JEE sous netbeans en utilisant les EJB3, JSF, le serveur Glasfish ainsi qu'une BD Oracle (Oracle Express 10).
J'ai crée la BD dont une table est intermédiaire, elle se compose d'une clé primaire composé de 3 clé étrangères d'autres tables.
Je viens de générer les entités automatiquement, les voilà:
La classe intermédiaire "Suivi"
_________________________________________________________________
@Entity
@Table(name = "SUIVI")
@NamedQueries({
@NamedQuery(name = "Suivi.findAll", query = "SELECT s FROM Suivi s"),
@NamedQuery(name = "Suivi.findByCodeDoss", query = "SELECT s FROM Suivi s WHERE s.suiviPK.codeDoss = :codeDoss"),
@NamedQuery(name = "Suivi.findByIdR", query = "SELECT s FROM Suivi s WHERE s.suiviPK.idR = :idR"),
@NamedQuery(name = "Suivi.findByIdAct", query = "SELECT s FROM Suivi s WHERE s.suiviPK.idAct = :idAct"),
@NamedQuery(name = "Suivi.findByReference", query = "SELECT s FROM Suivi s WHERE s.reference = :reference"),
@NamedQuery(name = "Suivi.findByDates", query = "SELECT s FROM Suivi s WHERE s.dates = :dates"),
@NamedQuery(name = "Suivi.findByResultat", query = "SELECT s FROM Suivi s WHERE s.resultat = :resultat")})
public class Suivi implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
protected SuiviPK suiviPK;
@Basic(optional = false)
@Column(name = "REFERENCE")
private String reference;
@Column(name = "DATES")
@Temporal(TemporalType.DATE)
private Date dates;
@Basic(optional = false)
@Column(name = "RESULTAT")
private String resultat;
@JoinColumn(name = "ID_ACT", referencedColumnName = "ID")
@ManyToOne(optional = false)
private Action action;
@JoinColumn(name = "ID_DOC", referencedColumnName = "ID")
@ManyToOne(optional = false)
private Document idDoc;
@JoinColumn(name = "CODE_DOSS", referencedColumnName = "CODE_DOSS")
@ManyToOne(optional = false)
private Dossiers dossiers;
@JoinColumn(name = "ID_R", referencedColumnName = "ID")
@ManyToOne(optional = false)
private Reunion reunion;
@JoinColumn(name = "ID_SIT", referencedColumnName = "ID")
@ManyToOne(optional = false)
private Situation idSit;
@JoinColumn(name = "CODE_VILLE", referencedColumnName = "CODE_VILLE")
@ManyToOne
private SlVille codeVille;
public Suivi() {
}
public Suivi(SuiviPK suiviPK) {
this.suiviPK = suiviPK;
}
public Suivi(SuiviPK suiviPK, String reference, String resultat) {
this.suiviPK = suiviPK;
this.reference = reference;
this.resultat = resultat;
}
public Suivi(String codeDoss, long idR, long idAct) {
this.suiviPK = new SuiviPK(codeDoss, idR, idAct);
}
//getters et setters..........
@Override
public String toString() {
return "entities.Suivi[suiviPK=" + suiviPK + "]";
}
}
_________________________________________________________________
La classe SuiviPK
_________________________________________________________________
@Embeddable
public class SuiviPK implements Serializable {
@Basic(optional = false)
@Column(name = "CODE_DOSS")
private String codeDoss;
@Basic(optional = false)
@Column(name = "ID_R")
private long idR;
@Basic(optional = false)
@Column(name = "ID_ACT")
private long idAct;
public SuiviPK() {
}
public SuiviPK(String codeDoss, long idR, long idAct) {
this.codeDoss = codeDoss;
this.idR = idR;
this.idAct = idAct;
}
//getters et setters..........
@Override
public String toString() {
return "entities.SuiviPK[codeDoss=" + codeDoss + ", idR=" + idR + ", idAct=" + idAct + "]";
}
}
_________________________________________________________________
Les 3 classes associés avec des foreign key:
_________________________________________________________________
@Entity
@Table(name = "DOSSIERS")
@NamedQueries({
@NamedQuery(name = "Dossiers.findAll", query = "SELECT d FROM Dossiers d"),
@NamedQuery(name = "Dossiers.findByCodeDoss", query = "SELECT d FROM Dossiers d WHERE d.codeDoss = :codeDoss"),
@NamedQuery(name = "Dossiers.findByCodeSte", query = "SELECT d FROM Dossiers d WHERE d.codeSte = :codeSte"),
@NamedQuery(name = "Dossiers.findByDenSoc", query = "SELECT d FROM Dossiers d WHERE d.denSoc = :denSoc"),
@NamedQuery(name = "Dossiers.findByNatJur", query = "SELECT d FROM Dossiers d WHERE d.natJur = :natJur"),
@NamedQuery(name = "Dossiers.findByAdr", query = "SELECT d FROM Dossiers d WHERE d.adr = :adr"),
@NamedQuery(name = "Dossiers.findByAct", query = "SELECT d FROM Dossiers d WHERE d.act = :act"),
@NamedQuery(name = "Dossiers.findByRegiCom", query = "SELECT d FROM Dossiers d WHERE d.regiCom = :regiCom"),
@NamedQuery(name = "Dossiers.findByTypeCred", query = "SELECT d FROM Dossiers d WHERE d.typeCred = :typeCred"),
@NamedQuery(name = "Dossiers.findByMontantCred", query = "SELECT d FROM Dossiers d WHERE d.montantCred = :montantCred"),
@NamedQuery(name = "Dossiers.findByDureeCred", query = "SELECT d FROM Dossiers d WHERE d.dureeCred = :dureeCred"),
@NamedQuery(name = "Dossiers.findByDureeDiff", query = "SELECT d FROM Dossiers d WHERE d.dureeDiff = :dureeDiff"),
@NamedQuery(name = "Dossiers.findByTauxCouv", query = "SELECT d FROM Dossiers d WHERE d.tauxCouv = :tauxCouv"),
@NamedQuery(name = "Dossiers.findByMontantMej", query = "SELECT d FROM Dossiers d WHERE d.montantMej = :montantMej"),
@NamedQuery(name = "Dossiers.findByDateMej", query = "SELECT d FROM Dossiers d WHERE d.dateMej = :dateMej"),
@NamedQuery(name = "Dossiers.findByTauxIr", query = "SELECT d FROM Dossiers d WHERE d.tauxIr = :tauxIr")})
public class Dossiers implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "CODE_DOSS")
private String codeDoss;
// autres propriétés .......
@OneToMany(cascade = CascadeType.ALL, mappedBy = "dossiers")
private Collection<Suivi> suiviCollection;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "codeDoss")
private Collection<Recouvrement> recouvrementCollection;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "codeDoss")
private Collection<Frais> fraisCollection;
@JoinColumn(name = "CODE_AGENCE", referencedColumnName = "CODE_AGENCE")
@ManyToOne
private SlAgence codeAgence;
@JoinColumn(name = "CODE_TYPE_PROD", referencedColumnName = "CODE_TYPE_PROD")
@ManyToOne
private TypeProduit codeTypeProd;
public Dossiers() {
}
public Dossiers(String codeDoss) {
this.codeDoss = codeDoss;
}
//getters et setters .....
@Override
public String toString() {
return "entities.Dossiers[codeDoss=" + codeDoss + "]";
}
_________________________________________________________________
@Entity
@Table(name = "REUNION")
@NamedQueries({
@NamedQuery(name = "Reunion.findAll", query = "SELECT r FROM Reunion r"),
@NamedQuery(name = "Reunion.findById", query = "SELECT r FROM Reunion r WHERE r.id = :id"),
@NamedQuery(name = "Reunion.findByDater", query = "SELECT r FROM Reunion r WHERE r.dater = :dater")})
public class Reunion implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "ID")
private Long id;
@Basic(optional = false)
@Column(name = "DATER")
@Temporal(TemporalType.DATE)
private Date dater;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "reunion")
private Collection<Suivi> suiviCollection;
@JoinColumn(name = "CODE_AGENCE", referencedColumnName = "CODE_AGENCE")
@ManyToOne(optional = false)
private SlAgence codeAgence;
public Reunion() {
}
public Reunion(Long id) {
this.id = id;
}
public Reunion(Long id, Date dater) {
this.id = id;
this.dater = dater;
}
// getters et setters.......
@Override
public String toString() {
return "entities.Reunion[id=" + id + "]";
}
}
_________________________________________________________________
@Entity
@Table(name = "ACTION")
@NamedQueries({
@NamedQuery(name = "Action.findAll", query = "SELECT a FROM Action a"),
@NamedQuery(name = "Action.findById", query = "SELECT a FROM Action a WHERE a.id = :id"),
@NamedQuery(name = "Action.findByLibelle", query = "SELECT a FROM Action a WHERE a.libelle = :libelle")})
public class Action implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "ID")
private Long id;
@Basic(optional = false)
@Column(name = "LIBELLE")
private String libelle;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "action")
private Collection<Suivi> suiviCollection;
public Action() {
}
public Action(Long id) {
this.id = id;
}
public Action(Long id, String libelle) {
this.id = id;
this.libelle = libelle;
}
// getters et setters............
@Override
public String toString() {
return "entities.Action[id=" + id + "]";
}
}
_________________________________________________________________
Apres j'ai générer les pages jsf à partir des entité automatiquement avec netbeans, mais après l' éxécution quand je veux insérer dans la partie Suivi la transaction ne passe pas, netbeans me répond comme suit: "transaction aborted" je ne sais pas au juste ou est le problème, j'ai besoin de votre aide car je suis bloqué la dessus et merci d'avance.
Partager