IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Persistance des données Java Discussion :

un grand probleme d'entity


Sujet :

Persistance des données Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Août 2007
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 74
    Par défaut un grand probleme d'entity
    bonjour les amis je trvail avec la technique jpa persistence et je veux faire l'ajout sur une des attributs d'une table de ma base de donnée
    mais ça marche pas
    je vous poser le code de l'entity et de l'interface et la sortie d'erreur ici s'il vous plait aider moi
    sortie d'erreur :
    [TopLink Info]: 2010.03.27 11:22:44.827--ServerSession(13185532)--TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
    [TopLink Info]: 2010.03.27 11:22:45.771--ServerSession(13185532)--file:/home/anoir/NetBeansProjects/SGCPI/src/-jpaPU login successful
    Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Object: sgcpi.Consultant[iDCons=null] is not a known entity type.
    at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:3212)
    at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerImpl.persist(EntityManagerImpl.java:205)
    at sgcpi.JFC.AJOUTER(JFC.java:242)
    at sgcpi.JFC$1.actionPerformed(JFC.java:47)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6263)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6028)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    voici l'entity
    package sgcpi;

    import java.beans.PropertyChangeListener;
    import java.beans.PropertyChangeSupport;
    import java.io.Serializable;
    import javax.persistence.Basic;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    import javax.persistence.Table;
    import javax.persistence.Transient;

    /**
    *
    * @author anoir
    */
    @Entity
    @Table(name = "CONSULTANT", catalog = "jpa", schema = "")
    @NamedQueries({@NamedQuery(name = "Consultant.findAll", query = "SELECT c FROM Consultant c"), @NamedQuery(name = "Consultant.findByIDCons", query = "SELECT c FROM Consultant c WHERE c.iDCons = :iDCons"), @NamedQuery(name = "Consultant.findByAge", query = "SELECT c FROM Consultant c WHERE c.age = :age"), @NamedQuery(name = "Consultant.findByTelF", query = "SELECT c FROM Consultant c WHERE c.telF = :telF"), @NamedQuery(name = "Consultant.findByTelM", query = "SELECT c FROM Consultant c WHERE c.telM = :telM"), @NamedQuery(name = "Consultant.findByAdresse", query = "SELECT c FROM Consultant c WHERE c.adresse = :adresse"), @NamedQuery(name = "Consultant.findByEmail", query = "SELECT c FROM Consultant c WHERE c.email = :email"), @NamedQuery(name = "Consultant.findByTypeCons", query = "SELECT c FROM Consultant c WHERE c.typeCons = :typeCons"), @NamedQuery(name = "Consultant.findByNom", query = "SELECT c FROM Consultant c WHERE c.nom = :nom"), @NamedQuery(name = "Consultant.findByPrenom", query = "SELECT c FROM Consultant c WHERE c.prenom = :prenom"), @NamedQuery(name = "Consultant.findByMotPass", query = "SELECT c FROM Consultant c WHERE c.motPass = :motPass")})
    public class Consultant implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "ID_Cons")
    private Integer iDCons;
    @Column(name = "Age")
    private Integer age;
    @Column(name = "Tel_F")
    private Integer telF;
    @Column(name = "Tel_M")
    private Integer telM;
    @Column(name = "Adresse")
    private String adresse;
    @Column(name = "Email")
    private String email;
    @Basic(optional = false)
    @Column(name = "Type_Cons")
    private String typeCons;
    @Basic(optional = false)
    @Column(name = "NOM")
    private String nom;
    @Basic(optional = false)
    @Column(name = "PRENOM")
    private String prenom;
    @Basic(optional = false)
    @Column(name = "Mot_Pass")
    private String motPass;

    public Consultant() {
    }

    public Consultant(Integer iDCons) {
    this.iDCons = iDCons;
    }

    public Consultant(Integer iDCons, String typeCons, String nom, String prenom, String motPass) {
    this.iDCons = iDCons;
    this.typeCons = typeCons;
    this.nom = nom;
    this.prenom = prenom;
    this.motPass = motPass;
    }

    public Integer getIDCons() {
    return iDCons;
    }

    public void setIDCons(Integer iDCons) {
    Integer oldIDCons = this.iDCons;
    this.iDCons = iDCons;
    changeSupport.firePropertyChange("IDCons", oldIDCons, iDCons);
    }

    public Integer getAge() {
    return age;
    }

    public void setAge(Integer age) {
    Integer oldAge = this.age;
    this.age = age;
    changeSupport.firePropertyChange("age", oldAge, age);
    }

    public Integer getTelF() {
    return telF;
    }

    public void setTelF(Integer telF) {
    Integer oldTelF = this.telF;
    this.telF = telF;
    changeSupport.firePropertyChange("telF", oldTelF, telF);
    }

    public Integer getTelM() {
    return telM;
    }

    public void setTelM(Integer telM) {
    Integer oldTelM = this.telM;
    this.telM = telM;
    changeSupport.firePropertyChange("telM", oldTelM, telM);
    }

    public String getAdresse() {
    return adresse;
    }

    public void setAdresse(String adresse) {
    String oldAdresse = this.adresse;
    this.adresse = adresse;
    changeSupport.firePropertyChange("adresse", oldAdresse, adresse);
    }

    public String getEmail() {
    return email;
    }

    public void setEmail(String email) {
    String oldEmail = this.email;
    this.email = email;
    changeSupport.firePropertyChange("email", oldEmail, email);
    }

    public String getTypeCons() {
    return typeCons;
    }

    public void setTypeCons(String typeCons) {
    String oldTypeCons = this.typeCons;
    this.typeCons = typeCons;
    changeSupport.firePropertyChange("typeCons", oldTypeCons, typeCons);
    }

    public String getNom() {
    return nom;
    }

    public void setNom(String nom) {
    String oldNom = this.nom;
    this.nom = nom;
    changeSupport.firePropertyChange("nom", oldNom, nom);
    }

    public String getPrenom() {
    return prenom;
    }

    public void setPrenom(String prenom) {
    String oldPrenom = this.prenom;
    this.prenom = prenom;
    changeSupport.firePropertyChange("prenom", oldPrenom, prenom);
    }

    public String getMotPass() {
    return motPass;
    }

    public void setMotPass(String motPass) {
    String oldMotPass = this.motPass;
    this.motPass = motPass;
    changeSupport.firePropertyChange("motPass", oldMotPass, motPass);
    }

    @Override
    public int hashCode() {
    int hash = 0;
    hash += (iDCons != null ? iDCons.hashCode() : 0);
    return hash;
    }

    @Override
    public boolean equals(Object object) {
    // TODO: Warning - this method won't work in the case the id fields are not set
    if (!(object instanceof Consultant)) {
    return false;
    }
    Consultant other = (Consultant) object;
    if ((this.iDCons == null && other.iDCons != null) || (this.iDCons != null && !this.iDCons.equals(other.iDCons))) {
    return false;
    }
    return true;
    }

    @Override
    public String toString() {
    return "sgcpi.Consultant[iDCons=" + iDCons + "]";
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
    changeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
    changeSupport.removePropertyChangeListener(listener);
    }



    }
    et le code d'interface:
    package sgcpi;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.lang.Object;
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.EntityTransaction;
    import javax.persistence.Persistence;
    import javax.persistence.Query;
    import javax.swing.table.DefaultTableModel;
    class JFC extends JFrame {

    JTabbedPane onglets;
    JPanel onglet1;
    JPanel onglet2;
    JButton AJOUTER,SUPPRIMER,Modifier,FERMER,ARCHIVE,SAVE;
    JLabel CompteL,CompteL1,CompteL2,NomL,PrenomL,AdresseL,Type_ConsL;
    JTextField NomTF,PrenomTF,AdresseTF,Type_ConsTF;
    JTable table=new JTable();
    JTable table1=new JTable();
    JScrollPane sp=new JScrollPane();
    JScrollPane sp1=new JScrollPane();
    private Iterable<Object> IDds;
    @SuppressWarnings("static-access")
    JFC() {
    onglets = new JTabbedPane();


    onglet1 = new JPanel();
    onglet1.setBackground(new Color(217, 233, 238));


    AJOUTER=new JButton("AJOUTER");
    AJOUTER= new JButton(new ImageIcon("/home/anoir/Bureau/icone/Mashup-MaXo/actions/add.png"));
    onglet1.add(AJOUTER);
    onglet1.setLayout(null);
    AJOUTER.setBounds(5,560,100,90);
    AJOUTER.setForeground(new Color(0,0,0));


    AJOUTER.setBorderPainted(false);
    AJOUTER.setContentAreaFilled(false);
    AJOUTER.addActionListener( new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    AJOUTER();
    }
    });

    SUPPRIMER=new JButton("SUPPRIMER");///media/doc/etude/icone/Mashup-MaXo/actions/add.png
    SUPPRIMER= new JButton(new ImageIcon("/home/anoir/Bureau/icone/Mashup-MaXo/actions/dialog-cancel.png"));
    onglet1.add(SUPPRIMER);
    onglet1.setLayout(null);
    SUPPRIMER.setBounds(230,560,100,90);
    SUPPRIMER.setForeground(new Color(0,0,0));
    SUPPRIMER.setBorderPainted(false);
    SUPPRIMER.setContentAreaFilled(false);
    Modifier=new JButton(new ImageIcon("/home/anoir/Bureau/icone/Mashup-MaXo/actions/gtk-edit.png"));
    onglet1.add(Modifier);

    onglet1.setLayout(null);
    Modifier.setBounds(460,560,100,90);
    Modifier.setForeground(new Color(0,0,0));
    Modifier.setBorderPainted(false);
    Modifier.setContentAreaFilled(false);
    FERMER=new JButton(new ImageIcon("/home/anoir/Bureau/icone/Mashup-MaXo/actions/system-suspend-hibernate.png"));
    onglet1.add(FERMER);
    onglet1.setLayout(null);
    FERMER.setBounds(640,560,100,90);
    FERMER.setForeground(new Color(0,0,0));

    FERMER.setBorderPainted(false);
    FERMER.setContentAreaFilled(false);
    FERMER.addActionListener( new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    System.exit(0);

    }
    });
    CompteL=new JLabel("GESTIONS DES INFIRMIER");
    onglet1.add(CompteL);
    onglet1.setLayout(null);
    CompteL.setBounds(10,15, 700,120);
    CompteL.setForeground(new Color(71,129,172));
    //CompteL.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
    CompteL.setIcon(new javax.swing.ImageIcon("/home/anoir/Bureau/icone/professional-icons/gwil40130.jpg"));
    CompteL.setFont(new Font("Monotype Corsiva",Font.BOLD,30));



    NomL=new JLabel("Nom :");
    onglet1.add(NomL);

    onglet1.setLayout(null);
    NomL.setFont(new Font("Monotype Corsiva",Font.BOLD,20));
    NomL.setForeground(new Color(51,129,172));
    NomL.setBounds(10,140, 100, 30);


    PrenomL=new JLabel("PRENOM :");
    onglet1.add(PrenomL);

    onglet1.setLayout(null);
    PrenomL.setFont(new Font("Monotype Corsiva",Font.BOLD,20));
    PrenomL.setForeground(new Color(51,129,172));
    PrenomL.setBounds(10,155, 200, 90);
    AdresseL=new JLabel("ADRESSE :");
    onglet1.add(AdresseL);

    onglet1.setLayout(null);
    AdresseL.setFont(new Font("Monotype Corsiva",Font.BOLD,20));
    AdresseL.setForeground(new Color(51,129,172));
    AdresseL.setBounds(330,110, 200, 90);
    Type_ConsL=new JLabel("Type_Consult:");
    onglet1.add(Type_ConsL);

    onglet1.setLayout(null);
    Type_ConsL.setFont(new Font("Monotype Corsiva",Font.BOLD,20));
    Type_ConsL.setForeground(new Color(51,129,172));
    Type_ConsL.setBounds(330,155, 200, 90);
    NomTF=new JTextField();

    NomTF.setBounds(135,140, 180, 27);
    NomTF.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
    NomTF.requestFocus();

    PrenomTF=new JTextField();

    PrenomTF.setBounds(135, 185, 180, 27);
    PrenomTF.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
    AdresseTF=new JTextField();

    AdresseTF.setBounds(480, 140, 180, 27);
    AdresseTF.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
    Type_ConsTF=new JTextField();

    Type_ConsTF.setBounds(480, 185, 180, 27);
    Type_ConsTF.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));



    onglet1.add(NomTF);
    onglet1.add(PrenomTF);
    onglet1.add(AdresseTF);
    onglet1.add(Type_ConsTF);
    table.setAutoCreateRowSorter(true); //trier la table
    table.setModel(new javax.swing.table.DefaultTableModel(new Object [][] { },new String [] {"IDCons", "NOM","PRENOM","Adresse","Type_Cons"}));
    table.getColumnModel().getColumn(0).setPreferredWidth(50);
    table.getColumnModel().getColumn(1).setPreferredWidth(100);
    table.getColumnModel().getColumn(2).setPreferredWidth(100);
    table.getColumnModel().getColumn(3).setPreferredWidth(100);
    table.getColumnModel().getColumn(4).setPreferredWidth(100);
    table.getTableHeader().setFont(new Font("Times New Roman",Font.BOLD,17));

    table.getTableHeader().setReorderingAllowed(false);
    table.setRowHeight(22);
    table.setFont(new Font("Times New Roman",Font.BOLD,14));
    table.setOpaque(false);
    table.setForeground(new Color(33,53,105));
    sp.setViewportView(table);
    sp.setBounds(3,270,710,300);
    sp.setOpaque(false);
    onglet1.setLayout(null);
    onglet1.add(sp);
    onglet2 = new JPanel();
    onglet2.setBackground(new Color(171, 233, 198));

    CompteL1=new JLabel("GESTIONS DES COMPTES");

    onglet2.add(CompteL1);

    onglet2.setLayout(null);
    CompteL1.setBounds(10,15, 700,120);
    CompteL1.setForeground(new Color(71,129,172));
    //CompteL1.setIcon(new javax.swing.ImageIcon("/media/doc/etude/icone/professional-icons/gwil40102.jpg"));
    CompteL1.setFont(new Font("Monotype Corsiva",Font.BOLD,30));
    AJOUTER=new JButton("AJOUTER");
    AJOUTER= new JButton(new ImageIcon("/home/anoir/Bureau/icone/Mashup-MaXo/actions/add.png"));
    onglet2.add(AJOUTER);
    onglet2.setLayout(null);
    AJOUTER.setBounds(10,60,100,90);
    AJOUTER.setForeground(new Color(0,0,0));

    AJOUTER.setBorderPainted(false);
    AJOUTER.setContentAreaFilled(false);

    onglets.addTab("GESTION DES COMPTES",onglet1);
    //AJOUTER.setBounds(100,200,300,40);

    onglets.addTab("MODIFICATION DE MOT DE PASSE",new ImageIcon(""),onglet2);



    getContentPane().add(onglets);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(750,700);
    setLocationRelativeTo(null); //pour centrer la fenetre
    setResizable(false);

    }


    public static void main(String[] args) {
    JFrame fen =new JFC();
    fen.setVisible(true);
    }
    void AJOUTER(){
    String erreur="";
    if(NomTF.getText().isEmpty())
    erreur+="Nom est vide !\n";
    else
    if(NomTF.getText().length()>25)
    erreur+="Nom est déppassé 25 caractères !\n";

    if(PrenomTF.getText().isEmpty())
    erreur+="Prénom est vide !\n";
    else
    if(PrenomTF.getText().length()>25)
    erreur+="Prénom est déppassè 25 caractères !";

    if(AdresseTF.getText().isEmpty())
    erreur+="Mot de passe est vide !\n";
    else
    if(AdresseTF.getText().length()>25)
    erreur+="Mot de passe est déppassé 25 caractères !";
    else
    if(Type_ConsTF.getText().length()>25)
    erreur+="Mot de passe est déppassé 25 caractères !";

    if(erreur.isEmpty()){
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpaPU");
    EntityManager em = emf.createEntityManager();
    EntityTransaction transac = em.getTransaction();
    transac.begin();
    Consultant nouvelleInfermier = new Consultant();
    nouvelleInfermier.setIDCons(null);
    nouvelleInfermier.setNom(NomTF.getText());
    nouvelleInfermier.setPrenom(PrenomTF.getText());
    nouvelleInfermier.setAdresse(AdresseTF.getText());
    nouvelleInfermier.setTypeCons(Type_ConsTF.getText());
    em.persist(nouvelleInfermier);
    transac.commit();
    em.close();
    emf.close();
    NomTF.setText("");
    PrenomTF.setText("");
    AdresseTF.setText("");
    Type_ConsTF.setText("");


    Filtrage1();
    }else
    JOptionPane.showMessageDialog(this,erreur,"Erreur ...",JOptionPane.ERROR_MESSAGE);
    }
    void Filtrage1(){
    while(table.getRowCount()>0){
    ((DefaultTableModel)table.getModel()).removeRow(0);
    }
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpaPU");
    EntityManager em = emf.createEntityManager();
    Query query = em.createQuery("SELECT c FROM Consultant c WHERE c.nom like :nom and c.prenom like :prenom and c.adresse like :adresse and c.typeCons like :typeCons order by c.ID_Cons" );
    query.setParameter("nom", NomTF.getText()+"%");
    query.setParameter("prenom", PrenomTF.getText()+"%");
    query.setParameter("nom",AdresseTF.getText()+"%");
    query.setParameter("prenom", Type_ConsTF.getText()+"%");
    java.util.List noms = query.getResultList();
    Consultant c=null;
    for (Object nom : noms) {
    c=(Consultant)nom;
    Object[] donnee = new Object[]{c.getIDCons(),c.getNom(),c.getPrenom(),c.getAdresse(),c.getTypeCons()};
    ((DefaultTableModel)table.getModel()).addRow(donnee);
    }
    em.close();
    emf.close();

    }


    }

  2. #2
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par défaut Problème de String
    Bonjour,

    Essayes plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    @Override
        public String toString() {
            return "sgcpi.Consultant[iDCons=" + iDCons + "]";
        }
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    @Override
        public String toString() {
            return new String("sgcpi.Consultant[iDCons=" + iDCons + "]");
        }
    olivier

Discussions similaires

  1. [PHP-JS] Script qui me pose de grands problemes
    Par MadSoldier dans le forum Langage
    Réponses: 3
    Dernier message: 22/06/2006, 22h33
  2. Grand probleme de compatibilité entre Firefox et IE
    Par moonia dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 02/06/2006, 11h36
  3. Grand probleme, l'administrateur root est supprimé
    Par amigauss dans le forum Administration système
    Réponses: 2
    Dernier message: 24/03/2006, 19h59
  4. Un Grand Problem pour moi - Delphi & Anglais
    Par pierrefrench dans le forum EDI
    Réponses: 6
    Dernier message: 20/02/2006, 10h43
  5. Grand Probleme d'appele d'une fonction
    Par Soufyane dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/02/2006, 16h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo