Digg StumbleUpon LinkedIn YouTube Flickr Facebook Twitter RSS Reset

Windows 8.1, fuite du Final Build

Après que quelques rumeurs aient récemment circulé, Microsoft a confirmé qu’il lance Windows 8.1 à la fabrication. Cela signifie que les partenaires hardware de la firme peuvent faire en sorte que leurs machines soient...

Non, le trafic internet ne s’effondre pas de 40% quand Google tombe en panne

Google s’éteint, et le trafic internet s’effondre de 40% ? En réalité, ce calcul, effectué par la société londonienne d’analyse web GoSquared, après la panne dont le moteur de recherche a été victime dans...

Contre Facebook, Microsoft, Apple et les autres, des start-up françaises inventent l’internet de demain

Détrôner PowerPoint, inventer un format publicitaire, lancer une “nouvelle couche” de l’internet, créer un réseau social où l’internaute contrôle ses données personnelles : grâce à des projets un peu fous ou...

Le nouvel iPhone pourrait être présenté le 10 septembre

Apple devrait annoncer le mois prochain un iPhone 5S ainsi que l’iPhone 5C, une version low cost. Selon le blog tech du Wall Street Journal All Things D, en général bien informé, Apple pourrait dévoiler son nouvel iPhone autour du...

PlayStation Vita, mise à jour vers la version 2.60

Aujourd’hui, Sony a lancé la mise à jour logicielle de la version 2.60, et elle apporte une nouvelle fonctionnalité très utile à la console de jeu portable de la firme. Cette fonction permet aux utilisateurs d’accéder à du...
Comments Off on Java Persistane: Comment Créer plusieurs requêtes nommée pour une seule entité.

Java Persistane: Comment Créer plusieurs requêtes nommée pour une seule entité.

Fichier: Department.java     import java.util.ArrayList; import java.util.Collection;   import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.OneToMany;   @Entity public class Department {     @Id     private int id;     private String nom;     @OneToMany(mappedBy="department")     private Collection<Professeur> employees;       public Department() {         employees = new ArrayList<Professeur>();     }          public int getId() {         return id;     }          public String getNom() {         return nom;     }          public Collection<Professeur> getProfesseurs() {         return employees;     }       public String toString() {         return "Department no: " + getId() +                 ", nom: " + getNom();     } }     Fichier: Professeur.java     import java.util.ArrayList; import java.util.Collection; import java.util.Date;   import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.NomdQueries; import javax.persistence.NomdQuery; import javax.persistence.OneToMany; import javax.persistence.Temporal; import javax.persistence.TemporalType;   @Entity @NomdQueries({   @NomdQuery(nom="Professeur.findAll",               query="SELECT e FROM Professeur e"),   @NomdQuery(nom="Professeur.findByPrimaryKey",               query="SELECT e FROM Professeur e WHERE e.id = :id"),   @NomdQuery(nom="Professeur.findByNom",               query="SELECT e FROM Professeur e WHERE e.nom = :nom") }) public class Professeur {     @Id     private int id;     private String nom;     private long salaire;     @Temporal(TemporalType.DATE)     private Date startDate;          @ManyToOne     private Professeur manager;          @OneToMany(mappedBy="manager")     private Collection<Professeur> directs;       @ManyToOne     private Department department;          @ManyToMany      private Collection<Project> projects;       public Professeur() {         projects = new ArrayList<Project>();         directs = new ArrayList<Professeur>();     }       public int getId() {         return id;     }          public String getNom() {         return nom;     }       public long getSalary() {         return salaire;     }       public Date getStartDate() {         return startDate;     }          public Department getDepartment() {         return department;     }          public Collection<Professeur> getDirects() {         return directs;     }          public Professeur getManager() {         return manager;     }       public Collection<Project> getProjects() {         return projects;     }          public String toString() {         return "Professeur " + getId() +                 ": nom: " + getNom() +                ", salaire: " + getSalary() +                ", dept: " + ((getDepartment() == null) ? null : getDepartment().getNom());     } }     Fichier: ProfesseurService.java   import java.util.Collection;   import javax.persistence.EntityManager; import javax.persistence.NoResultException;   public class ProfesseurService {   protected EntityManager em;     public ProfesseurService(EntityManager em) {     this.em = em;   }     public Professeur findProfesseurByNom(String nom) {     try {       return (Professeur) em.createNomdQuery("Professeur.findByNom").setParameter("nom", nom)           .getSingleResult();     } catch (NoResultException e) {       return null;     }   }   }     Fichier: Project.java     import java.util.ArrayList; import java.util.Collection;   import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToMany;   @Entity public class Project {     @Id     protected int id;     protected String nom;     @ManyToMany(mappedBy="projects")     private Collection<Professeur> employees;       public Project() {         employees = new ArrayList<Professeur>();     }       public int getId() {         return id;     }          public String getNom() {         return nom;     }          public Collection<Professeur> getProfesseurs() {         return employees;     }          public String toString() {         return "Project id: " + getId() + ", nom: " + getNom();     } }     Fichier: JPAUtil.java   import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Paysment;   public class JPAUtil {   Paysment st;      public JPAUtil() throws Exception{     Class.forNom("org.apache.derby.jdbc.ClientDriver");     System.out.println("Driver Loaded.");     String url = "jdbc:derby://localhost:1527/tutorial";       Connection conn = DriverManager.getConnection(url, "sa", "");     System.out.println("Got Connection.");     st = conn.createPaysment();   }   public void executeSQLCommand(String sql) throws Exception {     st.executeUpdate(sql);   }   public void checkData(String sql) throws Exception {     ResultSet rs = st.executeQuery(sql);     ResultSetMetaData metadata = rs.getMetaData();       for (int i = 0; i < metadata.getColumnCount(); i++) {       System.out.print(" "+ metadata.getColumnLabel(i + 1));      }     System.out.println(" ----------------------------------");       while (rs.next()) {       for (int i = 0; i < metadata.getColumnCount(); i++) {         Object value = rs.getObject(i + 1);         if (value == null) {           System.out.print("        ");         } else {           System.out.print(" "+value.toString().trim());         }       }       System.out.println("");     }   } }     Fichier: Main.java   import java.util.Collection;   import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence;   public class Main {   public static void main(String[] a) throws Exception {     JPAUtil util = new JPAUtil();       EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfesseurService");     EntityManager em = emf.createEntityManager();     ProfesseurService service = new ProfesseurService(em);       em.getTransaction().begin();       Professeur l = service.findProfesseurByNom("empNom");                 util.checkData("select * from Professeur");     util.checkData("select * from Department");            em.getTransaction().commit();     em.close();     emf.close();   } }             Fichier: persistence.xml   <persistence xmlns="http://java.sun.com/xml/ns/persistence"              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"              xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence" version="1.0">   <persistence-unit nom="JPAService" transaction-type="RESOURCE_LOCAL">     <properties>       <property nom="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>       <property nom="hibernate.hbm2ddl.auto" value="update"/>       <property nom="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>       <property nom="hibernate.connection.usernom" value="sa"/>       <property nom="hibernate.connection.password" value=""/>       <property nom="hibernate.connection.url" value="jdbc:derby://localhost:1527/tutorial"/>     </properties>   </persistence-unit> </persistence>                             ...
Comments Off on Java Persistane: Exemple de requête nommée avec parametres.

Java Persistane: Exemple de requête nommée avec parametres.

    Fichier: Department.java     import java.util.ArrayList; import java.util.Collection;   import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.OneToMany;   @Entity public class Department {     @Id     private int id;     private String nom;     @OneToMany(mappedBy="department")     private Collection<Professeur> employees;       public Department() {         employees = new ArrayList<Professeur>();     }          public int getId() {         return id;     }          public String getNom() {         return nom;     }          public Collection<Professeur> getProfesseurs() {         return employees;     }       public String toString() {         return "Department no: " + getId() +                 ", nom: " + getNom();     } }     Fichier: Professeur.java     import java.util.ArrayList; import java.util.Collection; import java.util.Date;   import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.NomdQueries; import javax.persistence.NomdQuery; import javax.persistence.OneToMany; import javax.persistence.Temporal; import javax.persistence.TemporalType;   @Entity @NomdQueries({   @NomdQuery(nom="findProfesseursAboveSal",               query="SELECT e " +                     "FROM Professeur e " +                     "WHERE e.department = :dept AND " +                     "      e.salaire > :sal") }) public class Professeur {     @Id     private int id;     private String nom;     private long salaire;     @Temporal(TemporalType.DATE)     private Date startDate;          @ManyToOne     private Professeur manager;          @OneToMany(mappedBy="manager")     private Collection<Professeur> directs;       @ManyToOne     private Department department;          @ManyToMany      private Collection<Project> projects;       public Professeur() {         projects = new ArrayList<Project>();         directs = new ArrayList<Professeur>();     }       public int getId() {         return id;     }          public String getNom() {         return nom;     }       public long getSalary() {         return salaire;     }       public Date getStartDate() {         return startDate;     }          public Department getDepartment() {         return department;     }          public Collection<Professeur> getDirects() {         return directs;     }          public Professeur getManager() {         return manager;     }       public Collection<Project> getProjects() {         return projects;     }          public String toString() {         return "Professeur " + getId() +                 ": nom: " + getNom() +                ", salaire: " + getSalary() +                ", dept: " + ((getDepartment() == null) ? null : getDepartment().getNom());     } }     Fichier: ProfesseurService.java   import java.util.Collection;   import javax.persistence.EntityManager; import javax.persistence.NoResultException;   public class ProfesseurService {   protected EntityManager em;     public ProfesseurService(EntityManager em) {     this.em = em;   }     public Collection<Professeur> findProfesseursAboveSal(Department dept, long minSal) {       return (Collection<Professeur>) em.createNomdQuery("findProfesseursAboveSal")                                       .setParameter("dept", dept)                                       .setParameter("sal", minSal)                                       .getResultList();   }   }     Fichier: Project.java     import java.util.ArrayList; import java.util.Collection;   import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToMany;   @Entity public class Project {     @Id     protected int id;     protected String nom;     @ManyToMany(mappedBy="projects")     private Collection<Professeur> employees;       public Project() {         employees = new ArrayList<Professeur>();     }       public int getId() {         return id;     }          public String getNom() {         return nom;     }          public Collection<Professeur> getProfesseurs() {         return employees;     }          public String toString() {         return "Project id: " + getId() + ", nom: " + getNom();     } }     Fichier: JPAUtil.java   import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Paysment;   public class JPAUtil {   Paysment st;      public JPAUtil() throws Exception{     Class.forNom("org.apache.derby.jdbc.ClientDriver");     System.out.println("Driver Loaded.");     String url = "jdbc:derby://localhost:1527/tutorial";       Connection conn = DriverManager.getConnection(url, "sa", "");     System.out.println("Got Connection.");     st = conn.createPaysment();   }   public void executeSQLCommand(String sql) throws Exception {     st.executeUpdate(sql);   }   public void checkData(String sql) throws Exception {     ResultSet rs = st.executeQuery(sql);     ResultSetMetaData metadata = rs.getMetaData();       for (int i = 0; i < metadata.getColumnCount(); i++) {       System.out.print(" "+ metadata.getColumnLabel(i + 1));      }     System.out.println(" ----------------------------------");       while (rs.next()) {       for (int i = 0; i < metadata.getColumnCount(); i++) {         Object value = rs.getObject(i + 1);         if (value == null) {           System.out.print("        ");         } else {           System.out.print(" "+value.toString().trim());         }       }       System.out.println("");     }   } }     Fichier: Main.java   import java.util.Collection;   import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence;   public class Main {   public static void main(String[] a) throws Exception {     JPAUtil util = new JPAUtil();       EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfesseurService");     EntityManager em = emf.createEntityManager();     ProfesseurService service = new ProfesseurService(em);       em.getTransaction().begin();                   util.checkData("select * from Professeur");     util.checkData("select * from Department");            em.getTransaction().commit();     em.close();     emf.close();   } }         Fichier: persistence.xml   <persistence xmlns="http://java.sun.com/xml/ns/persistence"              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"              xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence" version="1.0">   <persistence-unit nom="JPAService" transaction-type="RESOURCE_LOCAL">     <properties>       <property nom="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>       <property nom="hibernate.hbm2ddl.auto" value="update"/>       <property nom="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>       <property nom="hibernate.connection.usernom" value="sa"/>       <property nom="hibernate.connection.password" value=""/>       <property nom="hibernate.connection.url" value="jdbc:derby://localhost:1527/tutorial"/>     </properties>   </persistence-unit> </persistence>                     ...
Comments Off on Java Persistane: Comment utiliser une seule colonne de jointure.

Java Persistane: Comment utiliser une seule colonne de jointure.

      Fichier: Department.java     import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id;   @Entity public class Department {     @Id @GeneratedValue(strategy=GenerationType.IDENTITY)     private int id;     private String nom;       public int getId() {         return id;     }          public void setId(int id) {         this.id = id;     }          public String getNom() {         return nom;     }          public void setNom(String deptNom) {         this.nom = deptNom;     }       public String toString() {         return "Department id: " + getId() +                 ", nom: " + getNom();     } }     Fichier: Professeur.java     import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne;   @Entity public class Professeur {     @Id @GeneratedValue(strategy=GenerationType.IDENTITY)     private int id;     private String nom;     private long salaire;          @ManyToOne     @JoinColumn(nom="DEPT_ID")     private Department department;       public int getId() {         return id;     }          public void setId(int id) {         this.id = id;     }          public String getNom() {         return nom;     }          public void setNom(String nom) {         this.nom = nom;     }       public long getSalary() {         return salaire;     }       public void setSalary(long salaire) {         this.salaire = salaire;     }          public Department getDepartment() {         return department;     }          public void setDepartment(Department department) {         this.department = department;     }       public String toString() {         return "Professeur id: " + getId() + " nom: " + getNom() +                 " with " + getDepartment();     } }     Fichier: ProfesseurService.java   import java.util.Collection;   import javax.persistence.EntityManager; import javax.persistence.Query;   public class ProfesseurService {   protected EntityManager em;     public ProfesseurService(EntityManager em) {     this.em = em;   }     public Professeur createProfesseur(String nom, long salaire) {     Professeur emp = new Professeur();     emp.setNom(nom);     emp.setSalary(salaire);     em.persist(emp);       return emp;   }     public Professeur setProfesseurDepartment(int empId, int deptId) {     Professeur emp = em.find(Professeur.class, empId);     Department dept = em.find(Department.class, deptId);     emp.setDepartment(dept);     return emp;   }     public Collection<Professeur> findAllProfesseurs() {     Query query = em.createQuery("SELECT e FROM Professeur e");     return (Collection<Professeur>) query.getResultList();   }     public Department createDepartment(String nom) {     Department dept = new Department();     dept.setNom(nom);     em.persist(dept);       return dept;   }     public Collection<Department> findAllDepartments() {     Query query = em.createQuery("SELECT d FROM Department d");     return (Collection<Department>) query.getResultList();   } }     Fichier: JPAUtil.java   import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Paysment;   public class JPAUtil {   Paysment st;      public JPAUtil() throws Exception{     Class.forNom("org.apache.derby.jdbc.ClientDriver");     System.out.println("Driver Loaded.");     String url = "jdbc:derby://localhost:1527/tutorial";       Connection conn = DriverManager.getConnection(url, "sa", "");     System.out.println("Got Connection.");     st = conn.createPaysment();   }   public void executeSQLCommand(String sql) throws Exception {     st.executeUpdate(sql);   }   public void checkData(String sql) throws Exception {     ResultSet rs = st.executeQuery(sql);     ResultSetMetaData metadata = rs.getMetaData();       for (int i = 0; i < metadata.getColumnCount(); i++) {       System.out.print(" "+ metadata.getColumnLabel(i + 1));      }     System.out.println(" ----------------------------------");       while (rs.next()) {       for (int i = 0; i < metadata.getColumnCount(); i++) {         Object value = rs.getObject(i + 1);         if (value == null) {           System.out.print("        ");         } else {           System.out.print(" "+value.toString().trim());         }       }       System.out.println("");     }   } }     Fichier: Main.java   import java.util.Collection;   import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence;   public class Main {   public static void main(String[] a) throws Exception {     JPAUtil util = new JPAUtil();       EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfesseurService");     EntityManager em = emf.createEntityManager();     ProfesseurService service = new ProfesseurService(em);       em.getTransaction().begin();     Professeur emp = service.createProfesseur("empNom", 100);                    Department dept = service.createDepartment("deptNom");                    service.setProfesseurDepartment(emp.getId(), dept.getId());          Collection<Professeur> emps = service.findAllProfesseurs();     for (Professeur emp1 : emps) {       System.out.println(emp1);     }     Collection<Department> depts = service.findAllDepartments();     for (Department dept1 : depts) {       System.out.println(dept1);     }       util.checkData("select * from Professeur");     util.checkData("select * from Department");       em.getTransaction().commit();     em.close();     emf.close();   } }           Fichier: persistence.xml   <persistence xmlns="http://java.sun.com/xml/ns/persistence"              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"              xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence" version="1.0">   <persistence-unit nom="JPAService" transaction-type="RESOURCE_LOCAL">     <properties>       <property nom="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>       <property nom="hibernate.hbm2ddl.auto" value="update"/>       <property nom="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>       <property nom="hibernate.connection.usernom" value="sa"/>       <property nom="hibernate.connection.password" value=""/>       <property nom="hibernate.connection.url" value="jdbc:derby://localhost:1527/tutorial"/>     </properties>   </persistence-unit> </persistence>                       ...
Comments Off on Java Persistane: Comment Verouiller une Entité pour la modification.

Java Persistane: Comment Verouiller une Entité pour la modification.

  Fichier: Professeur.java   import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.Version;   @Entity  public class Professeur {     @Id private int id;     private String nom;     private long salaire;     private int vacationDays;     @Version private int version;     @ManyToOne(cascade={CascadeType.REFRESH})     private Professeur manager;            public int getId() {         return id;     }          public void setId(int id) {         this.id = id;     }          public String getNom() {         return nom;     }          public void setNom(String nom) {         this.nom = nom;     }          public long getSalary() {         return salaire;     }          public void setSalary(long salaire) {         this.salaire = salaire;     }          public int getVacationDays() {         return vacationDays;     }       public void setVacationDays(int vacation) {         this.vacationDays = vacation;     }            public Professeur getManager() {         return manager;     }          public void setManager(Professeur manager) {         this.manager = manager;     }       public String toString() {         return "Professeur id: " + getId() + " nom: " + getNom() +                " vacation: " + getVacationDays() + " salaire: " + getSalary();     } }     Fichier: ProfesseurService.java   import javax.persistence.EntityManager; import javax.persistence.LockModeType; import javax.persistence.Query;   public class ProfesseurService {   protected EntityManager em;     public ProfesseurService(EntityManager em) {     this.em = em;   }       public void lockAllProfesseurs() {     Query query = em.createQuery("SELECT e FROM Professeur e");          for(Object employee: query.getResultList()){       em.lock(employee, LockModeType.WRITE);     }             }   }     Fichier: JPAUtil.java   import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Paysment;   public class JPAUtil {   Paysment st;      public JPAUtil() throws Exception{     Class.forNom("org.apache.derby.jdbc.ClientDriver");     System.out.println("Driver Loaded.");     String url = "jdbc:derby://localhost:1527/tutorial";       Connection conn = DriverManager.getConnection(url, "sa", "");     System.out.println("Got Connection.");     st = conn.createPaysment();   }   public void executeSQLCommand(String sql) throws Exception {     st.executeUpdate(sql);   }   public void checkData(String sql) throws Exception {     ResultSet rs = st.executeQuery(sql);     ResultSetMetaData metadata = rs.getMetaData();       for (int i = 0; i < metadata.getColumnCount(); i++) {       System.out.print(" "+ metadata.getColumnLabel(i + 1));      }     System.out.println(" ----------------------------------");       while (rs.next()) {       for (int i = 0; i < metadata.getColumnCount(); i++) {         Object value = rs.getObject(i + 1);         if (value == null) {           System.out.print("        ");         } else {           System.out.print(" "+value.toString().trim());         }       }       System.out.println("");     }   } }     Fichier: Main.java   import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence;   public class Main {   public static void main(String[] a) throws Exception {     JPAUtil util = new JPAUtil();       EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfesseurService");     EntityManager em = emf.createEntityManager();     ProfesseurService service = new ProfesseurService(em);       em.getTransaction().begin();       service.lockAllProfesseurs();       util.checkData("select * from Professeur");       em.getTransaction().commit();     em.close();     emf.close();   } }             Fichier: persistence.xml   <persistence xmlns="http://java.sun.com/xml/ns/persistence"              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"              xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence" version="1.0">   <persistence-unit nom="JPAService" transaction-type="RESOURCE_LOCAL">     <properties>       <property nom="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>       <property nom="hibernate.hbm2ddl.auto" value="update"/>       <property nom="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>       <property nom="hibernate.connection.usernom" value="sa"/>       <property nom="hibernate.connection.password" value=""/>       <property nom="hibernate.connection.url" value="jdbc:derby://localhost:1527/tutorial"/>     </properties>   </persistence-unit> </persistence>                           ...
Comments Off on Java Persistane: Joindre deux Entités avec Paramètre.

Java Persistane: Joindre deux Entités avec Paramètre.

    Fichier: Department.java     import java.util.ArrayList; import java.util.Collection;   import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.OneToMany;   @Entity public class Department {     @Id     private int id;     private String nom;     @OneToMany(mappedBy="department")     private Collection<Professeur> employees;       public Department() {         employees = new ArrayList<Professeur>();     }          public int getId() {         return id;     }          public String getNom() {         return nom;     }          public Collection<Professeur> getProfesseurs() {         return employees;     }       public String toString() {         return "Department no: " + getId() +                 ", nom: " + getNom();     } }     Fichier: Professeur.java       import java.util.ArrayList; import java.util.Collection; import java.util.Date;   import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Temporal; import javax.persistence.TemporalType;   @Entity public class Professeur {     @Id     private int id;     private String nom;     private long salaire;     @Temporal(TemporalType.DATE)     private Date startDate;          @ManyToOne     private Professeur manager;          @OneToMany(mappedBy="manager")     private Collection<Professeur> directs;       @ManyToOne     private Department department;          @ManyToMany      private Collection<Project> projects;       public Professeur() {         projects = new ArrayList<Project>();         directs = new ArrayList<Professeur>();     }       public int getId() {         return id;     }          public String getNom() {         return nom;     }       public long getSalary() {         return salaire;     }       public Date getStartDate() {         return startDate;     }          public Department getDepartment() {         return department;     }          public Collection<Professeur> getDirects() {         return directs;     }          public Professeur getManager() {         return manager;     }       public Collection<Project> getProjects() {         return projects;     }          public String toString() {         return "Professeur " + getId() +                 ": nom: " + getNom() +                ", salaire: " + getSalary() +                ", dept: " + ((getDepartment() == null) ? null : getDepartment().getNom());     } }     Fichier: ProfesseurService.java   import java.util.Collection;   import javax.persistence.EntityManager; import javax.persistence.NoResultException;   public class ProfesseurService {   protected EntityManager em;     public ProfesseurService(EntityManager em) {     this.em = em;   }     public long queryEmpSalary(String deptNom, String empNom) {     String query = "SELECT e.salaire " + "FROM Professeur e " + "WHERE e.department.nom = '"         + deptNom + "' AND " + " e.nom = '" + empNom + "'";     try {       return (Long) em.createQuery(query).getSingleResult();     } catch (NoResultException e) {       return 0;     }   }     public long queryEmpSalaryUsingParams(String deptNom, String empNom) {     try {       return (Long) em.createQuery(           "SELECT e.salaire " + "FROM Professeur e " + "WHERE e.department.nom = :deptNom AND "               + " e.nom = :empNom ").setParameter("deptNom", deptNom).setParameter("empNom",           empNom).getSingleResult();     } catch (NoResultException e) {       return 0;     }   }   }     Fichier: Project.java     import java.util.ArrayList; import java.util.Collection;   import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToMany;   @Entity public class Project {     @Id     protected int id;     protected String nom;     @ManyToMany(mappedBy="projects")     private Collection<Professeur> employees;       public Project() {         employees = new ArrayList<Professeur>();     }       public int getId() {         return id;     }          public String getNom() {         return nom;     }          public Collection<Professeur> getProfesseurs() {         return employees;     }          public String toString() {         return "Project id: " + getId() + ", nom: " + getNom();     } }     Fichier: JPAUtil.java   import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Paysment;   public class JPAUtil {   Paysment st;      public JPAUtil() throws Exception{     Class.forNom("org.apache.derby.jdbc.ClientDriver");     System.out.println("Driver Loaded.");     String url = "jdbc:derby://localhost:1527/tutorial";       Connection conn = DriverManager.getConnection(url, "sa", "");     System.out.println("Got Connection.");     st = conn.createPaysment();   }   public void executeSQLCommand(String sql) throws Exception {     st.executeUpdate(sql);   }   public void checkData(String sql) throws Exception {     ResultSet rs = st.executeQuery(sql);     ResultSetMetaData metadata = rs.getMetaData();       for (int i = 0; i < metadata.getColumnCount(); i++) {       System.out.print(" "+ metadata.getColumnLabel(i + 1));      }     System.out.println(" ----------------------------------");       while (rs.next()) {       for (int i = 0; i < metadata.getColumnCount(); i++) {         Object value = rs.getObject(i + 1);         if (value == null) {           System.out.print("        ");         } else {           System.out.print(" "+value.toString().trim());         }       }       System.out.println("");     }   } }     Fichier: Main.java   import java.util.Collection;   import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence;   public class Main {   public static void main(String[] a) throws Exception {     JPAUtil util = new JPAUtil();       EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfesseurService");     EntityManager em = emf.createEntityManager();     ProfesseurService service = new ProfesseurService(em);       em.getTransaction().begin();       long l = service.queryEmpSalary("deptNom", "empNom");          long q = service.queryEmpSalaryUsingParams("deptNom", "empNom");               util.checkData("select * from Professeur");     util.checkData("select * from Department");            em.getTransaction().commit();     em.close();     emf.close();   } }           Fichier: persistence.xml   <persistence xmlns="http://java.sun.com/xml/ns/persistence"              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"              xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence" version="1.0">   <persistence-unit nom="JPAService" transaction-type="RESOURCE_LOCAL">     <properties>       <property nom="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>       <property nom="hibernate.hbm2ddl.auto" value="update"/>       <property nom="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>       <property nom="hibernate.connection.usernom" value="sa"/>       <property nom="hibernate.connection.password" value=""/>       <property nom="hibernate.connection.url" value="jdbc:derby://localhost:1527/tutorial"/>     </properties>   </persistence-unit> </persistence>                           ...