Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1410 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  servlet>ejb>jpa clé composée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

servlet>ejb>jpa clé composée

n°1940890
princejude
Posté le 15-11-2009 à 17:50:34  profilanswer
 

Bonjour,
salu je suis débutant en programmation J2EE.j'ecrit une application de bibliotheque avec netbeans et SGBD ORACLE avec 3 tables: LECTEUR OUVRAGE et la table EMPRUNT.
description:
lecteur(id_lecteur String,nom String,prenom String,contact String)
ouvrage(id_ouvr String, titre String, auteur String)
emprunt(id_ouvr,id_lecteur,deb Date,fin Date, eff Date)
 
Avec l'outil netbeans toutes les classe entités ont été générées automatiquement.
 
//classe EmpruntPK
 
public class EmpruntPK implements Serializable {
    @Basic(optional = false)
    @Column(name = "ID_LECTEUR", nullable = false, length = 12)
    private String idLecteur;
    @Basic(optional = false)
    @Column(name = "ID_OUVR", nullable = false, length = 12)
    private String idOuvr;
 
    public EmpruntPK() {
    }
 
    public EmpruntPK(String idLecteur, String idOuvr) {
        this.idLecteur = idLecteur;
        this.idOuvr = idOuvr;
    }
 
    public String getIdLecteur() {
        return idLecteur;
    }
 
    public void setIdLecteur(String idLecteur) {
        this.idLecteur = idLecteur;
    }
 
    public String getIdOuvr() {
        return idOuvr;
    }
 
    public void setIdOuvr(String idOuvr) {
        this.idOuvr = idOuvr;
    }
 
//classe Emprunt
 
@Entity
@Table(name = "EMPRUNT", catalog = "", schema = "YAPO" )
@NamedQueries({@NamedQuery(name = "Emprunt.findAll", query = "SELECT e FROM Emprunt e" ), @NamedQuery(name = "Emprunt.findByIdLecteur", query = "SELECT e FROM Emprunt e WHERE e.empruntPK.idLecteur = :idLecteur" ), @NamedQuery(name = "Emprunt.findByIdOuvr", query = "SELECT e FROM Emprunt e WHERE e.empruntPK.idOuvr = :idOuvr" ), @NamedQuery(name = "Emprunt.findByDateDeb", query = "SELECT e FROM Emprunt e WHERE e.dateDeb = :dateDeb" ), @NamedQuery(name = "Emprunt.findByDateFin", query = "SELECT e FROM Emprunt e WHERE e.dateFin = :dateFin" ), @NamedQuery(name = "Emprunt.findByDateEff", query = "SELECT e FROM Emprunt e WHERE e.dateEff = :dateEff" )})
public class Emprunt implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected EmpruntPK empruntPK;
    @Column(name = "DATE_DEB" )
    @Temporal(TemporalType.DATE)
    private Date dateDeb;
    @Column(name = "DATE_FIN" )
    @Temporal(TemporalType.DATE)
    private Date dateFin;
    @Column(name = "DATE_EFF" )
    @Temporal(TemporalType.DATE)
    private Date dateEff;
    @JoinColumn(name = "ID_LECTEUR", referencedColumnName = "ID_LECTEUR", nullable = false, insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Lecteur lecteur;
    @JoinColumn(name = "ID_OUVR", referencedColumnName = "ID_OUVR", nullable = false, insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Ouvrage ouvrage;
 
    public Emprunt() {
    }
 
 
    public Emprunt(EmpruntPK empruntPK) {
        this.empruntPK = empruntPK;
    }
 
    public Emprunt(String idLecteur, String idOuvr) {
        this.empruntPK = new EmpruntPK(idLecteur, idOuvr);
    }
 
    public EmpruntPK getEmpruntPK() {
        return empruntPK;
    }
 
    public void setEmpruntPK(EmpruntPK empruntPK) {
        this.empruntPK = empruntPK;
    }
 
    public Date getDateDeb() {
        return dateDeb;
    }
 
    public void setDateDeb(Date dateDeb) {
        this.dateDeb = dateDeb;
    }
 
    public Date getDateFin() {
        return dateFin;
    }
 
    public void setDateFin(Date dateFin) {
        this.dateFin = dateFin;
    }
 
    public Date getDateEff() {
        return dateEff;
    }
 
    public void setDateEff(Date dateEff) {
        this.dateEff = dateEff;
    }
 
    public Lecteur getLecteur() {
        return lecteur;
    }
 
    public void setLecteur(Lecteur lecteur) {
        this.lecteur = lecteur;
    }
 
    public Ouvrage getOuvrage() {
        return ouvrage;
    }
 
    public void setOuvrage(Ouvrage ouvrage) {
        this.ouvrage = ouvrage;
    }
 
j'ai écris l'intarface EmpruntFacadeLocal suivant
 
// interface EmpruntFacadeLocal
 
@Local
public interface EmpruntFacadeLocal {
 void create(Emprunt ouvrage);
 
    void edit(Emprunt ouvrage);
 
    void remove(Emprunt ouvrage);
 
    Emprunt find(Object id);
 
    Collection<Emprunt> findAll();
 
void enregistrerEmprunt(String id_ouvr,String id_lecteur, Date deb,Date fin,Date eff);
}
 
j'ai écrit EmpruntFacadeBean suivant
// EmpruntFacadeBean
@Stateless
public class EmpruntFacadeBean implements EmpruntFacadeRemote, EmpruntFacadeLocal {
  @PersistenceContext
    private EntityManager em;
    private EmpruntPK epk;
    public void create(Emprunt emprunt) {
        em.persist(emprunt);
    }
 
    public void edit(Emprunt emprunt) {
        em.merge(emprunt);
    }
 
    public void remove(Emprunt emprunt) {
        em.remove(em.merge(emprunt));
    }
 
    public Emprunt find(Object id) {
        return em.find(entity.classes.Emprunt.class, id);
    }
 
    public Collection<Emprunt> findAll() {
        return em.createQuery("select object(o) from Emprunt as o" ).getResultList();
    }
    public void enregistrerEmprunt(String id_ouvr,String id_lecteur, Date deb,Date fin,Date eff) {
 
    <gras>if(em.find(Emprunt.class,???????????????)==null)
        {
            Emprunt dpt=new Emprunt();
           dpt.??????? //id_lecteur
           dpt.??????? //id_ouvr
            dpt.setDateDeb(deb);
            dpt.setDateFin(fin);
            dpt.setDateEff(eff);
            em.persist(dpt);
            em.flush();
            System.out.print("\nENregistrement effectué!" );
        }
        else
        {
            System.out.print("\nCe lecteur existe deja" );
        }
    }
}</gras>
PROBLEME : La persitance au niveau des classes Lecteur et Ouvrage passent correctement car il me faut utiliser une seule clé, tandis que la classe Emprunt me posent toujour probleme.en fait je me perd dans l'écriture de la methode "enregistrerEmprunt()" . Aussi comment pourrais-je l'invoquer dans une servlet?
 
qulequ'un peut-il me venir en aide?merci d'avence pr toutes vos réactions.

mood
Publicité
Posté le 15-11-2009 à 17:50:34  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  servlet>ejb>jpa clé composée

 

Sujets relatifs
JSF/JSP/Servlet : Impression sur requête HTTPJSP/JSTL servlet-name
help servlet ejbredirection vers pages jsp depuis servlet selon le bouton clické
Servlet:Comment récuperer tous les élements qui ne sont pas selectionn[HTML] Pb sur un forumulaire (pas beau :( ) - servlet
servlet : pleins de questions :/[Problème] Instanciation de Servlet au démarrage de Tomcat
[résolu] Servlet : impossible de setter la valeur d'un cookieJava, servlet et IPv6
Plus de sujets relatifs à : servlet>ejb>jpa clé composée


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR