Digg StumbleUpon LinkedIn YouTube Flickr Facebook Twitter RSS Reset
Comments Off on Java Algorithme d’Euclide: déterminer le plus grand commun diviseur

Java Algorithme d’Euclide: déterminer le plus grand commun diviseur

Download /** * @(#)LeplusGrandDiviseurCommun.java * * * @author * @version 1.00 2013/9/26 */   import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class LeplusGrandDiviseurCommun {   ...
Comments Off on Java Persistane: Exemple de Requête nommée sans Paramètre.

Java Persistane: Exemple de Requête nommée sans 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.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 Collection<Professeur> findAllProfesseurs() {     return (Collection<Professeur>) em.createNomdQuery("Professeur.findAll").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();       Collection<Professeur> l= service.findAllProfesseurs();                 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 requête nommée.

Java Persistane: Comment utiliser une requête nommée.

    Fichier: Adresse.java   import javax.persistence.Entity; import javax.persistence.Id;   @Entity public class Adresse {   @Id   private int id;     private String rue;     private String ville;     private String pays;     private String codepostal;     public int getId() {     return id;   }     public void setId(int id) {     this.id = id;   }     public String getRue() {     return rue;   }     public void setRue(String address) {     this.rue = address;   }     public String getVille() {     return ville;   }     public void setVille(String ville) {     this.ville = ville;   }     public String getPays() {     return pays;   }     public void setPays(String pays) {     this.pays = pays;   }     public String getCodePostal() {     return codepostal;   }     public void setCodePostal(String codepostal) {     this.codepostal = codepostal;   }     public String toString() {     return "Adresse id: " + getId() + ", rue: " + getRue() + ", ville: " + getVille()         + ", pays: " + getPays() + ", codepostal: " + getCodePostal();   }   }     Fichier: Professeur.java   import java.util.ArrayList; import java.util.Collection;   import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.NomdNativeQuery; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table;   @Entity @Table(nom = "EMP") @NomdNativeQuery(nom = "nativeSQL", query = "SELECT emp1.emp_id, emp1.nom, emp1.manager_id, "     + "emp1.dept_id, emp1.address_id " + "FROM EMP emp1, EMP emp2 "     + "WHERE ((emp2.EMP_ID = ?) AND (emp2.EMP_ID = emp1.MANAGER_ID))", resultClass = Professeur.class) public class Professeur {   @Id   @Column(nom = "EMP_ID")   private int id;     private String nom;     @OneToOne   private Adresse address;     @ManyToOne   @JoinColumn(nom = "DEPT_ID")   private Department department;     @ManyToOne   @JoinColumn(nom = "MANAGER_ID")   private Professeur manager;     @OneToMany(mappedBy = "manager")   private Collection<Professeur> directs = new ArrayList<Professeur>();     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 Adresse getAdresse() {     return address;   }     public void setAdresse(Adresse address) {     this.address = address;   }     public Department getDepartment() {     return department;   }     public void setDepartment(Department department) {     this.department = department;   }     public Collection<Professeur> getDirects() {     return directs;   }     public void addDirect(Professeur employee) {     if (!getDirects().contains(employee)) {       getDirects().add(employee);       if (employee.getManager() != null) {         employee.getManager().getDirects().remove(employee);       }       employee.setManager(this);     }   }     public Professeur getManager() {     return manager;   }     public void setManager(Professeur manager) {     this.manager = manager;   }     public String toString() {     return "Professeur id: " + getId() + " nom: " + getNom() + " with MgrId: "         + (getManager() == null ? null : getManager().getId());   } }     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: ProfesseurService.java   import java.util.List;   import javax.persistence.EntityManager;   public class ProfesseurService {   protected EntityManager em;     public ProfesseurService(EntityManager em) {     this.em = em;   }     public List findProfesseursReportingTo(int managerId) {     return em.createNomdQuery("nativeSQL").setParameter(1, managerId)         .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 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.findProfesseursReportingTo(1);          util.checkData("select * from EMP");       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 8: Exemple d’utilisation des Expressions lambda

Java 8: Exemple d’utilisation des Expressions lambda

En prélude au lancement officiel de OpenJdk avec Java SE 8, Nous introduisons ici l’utilisation d’une fonctionnalité de Java8 Qui va beaucoup plaire au développeurs passionnés de Java notamment ceux qui utilisent ou qui ont déjà...
Comments Off on Java Persistane: Exemple d’une Rélation un à plusieur basé sur une Liste de Collection.

Java Persistane: Exemple d’une Rélation un à plusieur basé sur une Liste de Collection.

  Fichier: Department.java     import java.util.ArrayList; import java.util.Collection; import java.util.List;   import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.OrderBy;   @Entity public class Department {   @Id   @GeneratedValue(strategy = GenerationType.IDENTITY)   private int id;     private String nom;     @OneToMany(mappedBy = "department")   @OrderBy("nom ASC")   private List<Professeur> employees;     public Department() {     employees = new ArrayList<Professeur>();   }     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 void addProfesseur(Professeur employee) {     if (!getProfesseurs().contains(employee)) {       getProfesseurs().add(employee);       if (employee.getDepartment() != null) {         employee.getDepartment().getProfesseurs().remove(employee);       }       employee.setDepartment(this);     }   }     public Collection<Professeur> getProfesseurs() {     return employees;   }     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.ManyToOne;   @Entity public class Professeur {     @Id @GeneratedValue(strategy=GenerationType.IDENTITY)     private int id;     private String nom;     private long salaire;          @ManyToOne     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 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(); } 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);     dept.addProfesseur(emp);     return emp; }   public Collection<Professeur> findAllProfesseurs() {     Query query = em.createQuery("SELECT e FROM Professeur e");     return (Collection<Professeur>) 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", 100L);       Department dept = service.createDepartment("deptNom");       emp = service.setProfesseurDepartment(emp.getId(),dept.getId());       System.out.println(emp.getDepartment() + " with Professeurs:");     System.out.println(emp.getDepartment().getProfesseurs());       Collection<Professeur> emps = service.findAllProfesseurs();     if (emps.isEmpty()) {       System.out.println("No Professeurs found ");     } else {       System.out.println("Found Professeurs:");       for (Professeur emp1 : emps) {         System.out.println(emp1);       }     }       Collection<Department> depts = service.findAllDepartments();     if (depts.isEmpty()) {       System.out.println("No Departments found ");     } else {       System.out.println("Found Departments:");       for (Department dept1 : depts) {         System.out.println(dept1 + " with " + dept1.getProfesseurs().size() + " employees "             + dept1.getProfesseurs());       }     }       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 Native Insert avec parametre.

Java Persistane: Exemple de requête Native Insert avec parametre.

  Fichier: Adresse.java   import javax.persistence.Entity; import javax.persistence.Id;   @Entity public class Adresse {   @Id   private int id;     private String rue;     private String ville;     private String pays;     private String codepostal;     public int getId() {     return id;   }     public void setId(int id) {     this.id = id;   }     public String getRue() {     return rue;   }     public void setRue(String address) {     this.rue = address;   }     public String getVille() {     return ville;   }     public void setVille(String ville) {     this.ville = ville;   }     public String getPays() {     return pays;   }     public void setPays(String pays) {     this.pays = pays;   }     public String getCodePostal() {     return codepostal;   }     public void setCodePostal(String codepostal) {     this.codepostal = codepostal;   }     public String toString() {     return "Adresse id: " + getId() + ", rue: " + getRue() + ", ville: " + getVille()         + ", pays: " + getPays() + ", codepostal: " + getCodePostal();   }   }     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 java.util.ArrayList; import java.util.Collection;   import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.NomdNativeQuery; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table;   @Entity @Table(nom = "EMP") @NomdNativeQuery(nom = "nativeSQL", query = "SELECT emp1.emp_id, emp1.nom, emp1.manager_id, "     + "emp1.dept_id, emp1.address_id " + "FROM EMP emp1, EMP emp2 "     + "WHERE ((emp2.EMP_ID = ?) AND (emp2.EMP_ID = emp1.MANAGER_ID))", resultClass = Professeur.class) public class Professeur {   @Id   @Column(nom = "EMP_ID")   private int id;     private String nom;     @OneToOne   private Adresse address;     @ManyToOne   @JoinColumn(nom = "DEPT_ID")   private Department department;     @ManyToOne   @JoinColumn(nom = "MANAGER_ID")   private Professeur manager;     @OneToMany(mappedBy = "manager")   private Collection<Professeur> directs = new ArrayList<Professeur>();     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 Adresse getAdresse() {     return address;   }     public void setAdresse(Adresse address) {     this.address = address;   }     public Department getDepartment() {     return department;   }     public void setDepartment(Department department) {     this.department = department;   }     public Collection<Professeur> getDirects() {     return directs;   }     public void addDirect(Professeur employee) {     if (!getDirects().contains(employee)) {       getDirects().add(employee);       if (employee.getManager() != null) {         employee.getManager().getDirects().remove(employee);       }       employee.setManager(this);     }   }     public Professeur getManager() {     return manager;   }     public void setManager(Professeur manager) {     this.manager = manager;   }     public String toString() {     return "Professeur id: " + getId() + " nom: " + getNom() + " with MgrId: "         + (getManager() == null ? null : getManager().getId());   } }     Fichier: ProfesseurService.java   import java.util.List;   import javax.persistence.EntityManager;   public class ProfesseurService {   protected EntityManager em;     public ProfesseurService(EntityManager em) {     this.em = em;   }     public void addProfesseur(String id) {     em.createNativeQuery("INSERT INTO emp (EMP_ID, nom) " +     "       VALUES(?, 'asdf')")       .setParameter(1, id)       .executeUpdate(); } }     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.addProfesseur("12");          util.checkData("select * from EMP");       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 Schéma Plusieur à un et Un à plusieur.

Java Persistane: Exemple de Schéma Plusieur à un et Un à plusieur.

  Fichier: Department.java       import java.util.HashMap; import java.util.Map;   import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.MapKey; import javax.persistence.OneToMany;   @Entity public class Department {     @Id @GeneratedValue(strategy=GenerationType.IDENTITY)     private int id;     private String nom;     @OneToMany(mappedBy="department")     @MapKey(nom="nom")     private Map<String, Professeur> employees;       public Department() {         employees = new HashMap<String, Professeur>();     }          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 void addProfesseur(Professeur employee) {         if (!getProfesseurs().containsKey(employee.getNom())) {             getProfesseurs().put(employee.getNom(), employee);             if (employee.getDepartment() != null) {                 employee.getDepartment().getProfesseurs().remove(employee.getNom());             }             employee.setDepartment(this);         }     }          public Map<String,Professeur> getProfesseurs() {         return employees;     }       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.ManyToOne;   @Entity public class Professeur {     @Id @GeneratedValue(strategy=GenerationType.IDENTITY)     private int id;     private String nom;     private long salaire;          @ManyToOne     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 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();   }     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);     dept.addProfesseur(emp);     emp.setDepartment(dept);     return emp;   }     public Collection<Professeur> findAllProfesseurs() {     Query query = em.createQuery("SELECT e FROM Professeur e");     return (Collection<Professeur>) query.getResultList();   } }     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",100L);       Department dept = service.createDepartment("deptNom");       emp = service.setProfesseurDepartment(emp.getId(),dept.getId());       System.out.println(emp.getDepartment() + " with Professeurs:");     System.out.println(emp.getDepartment().getProfesseurs());       Collection<Professeur> emps = service.findAllProfesseurs();     if (emps.isEmpty()) {         System.out.println("No Professeurs found ");     } else {         System.out.println("Found Professeurs:");         for (Professeur emp1 : emps) {             System.out.println(emp1);         }     }     Collection<Department> depts = service.findAllDepartments();     if (depts.isEmpty()) {         System.out.println("No Departments found ");     } else {         System.out.println("Found Departments:");         for (Department dept1 : depts) {             System.out.println(dept1 + " with " + dept1.getProfesseurs().size() +                     " employees " + dept1.getProfesseurs());         }     }       util.checkData("select * from Professeur");       util.checkData("select * from Department");     em.getTransaction().commit();     em.close();     emf.close();   } }     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: 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>                           ...
Comments Off on Java Persistane: Exemple de durée de vie de CallBack en ajoutant les Ecouteurs au Sous-classe.

Java Persistane: Exemple de durée de vie de CallBack en ajoutant les Ecouteurs au Sous-classe.

  Fichier: ContractProfesseur.java     import javax.persistence.Column; import javax.persistence.DiscriminatorValue; import javax.persistence.Entity; import javax.persistence.EntityListeners; import javax.persistence.ExcludeSuperclassListeners; import javax.persistence.PrePersist; import javax.persistence.Table;   @Entity @Table(nom="CONTRACT_EMP") @DiscriminatorValue("1") @ExcludeSuperclassListeners @EntityListeners(ProfesseurDebugListener.class) public class ContractProfesseur extends Professeur {     @Column(nom="D_RATE")     private int dailyRate;     private int term;          @PrePersist     public void verifyTerm() {          System.out.println("ContractProfesseur.verifyTerm called on employee: " + getId());       }       public int getDailyRate() {         return dailyRate;     }          public void setDailyRate(int dailyRate) {         this.dailyRate = dailyRate;     }          public int getTerm() {         return term;     }          public void setTerm(int term) {         this.term = term;     }       public String toString() {         return "ContractProfesseur id: " + getId() + " nom: " + getNom();     } }     Fichier: Professeur.java     import java.util.Date;   import javax.persistence.Column; import javax.persistence.DiscriminatorColumn; import javax.persistence.DiscriminatorType; import javax.persistence.Entity; import javax.persistence.EntityListeners; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.PostLoad; import javax.persistence.PostPersist; import javax.persistence.PostUpdate; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Transient;   @Entity @Table(nom="EMP") @Inheritance(strategy=InheritanceType.JOINED) @DiscriminatorColumn(nom="EMP_TYPE", discriminatorType=DiscriminatorType.INTEGER) @EntityListeners(ProfesseurDebugListener.class) public abstract class Professeur {     @Id private int id;     private String nom;     @Temporal(TemporalType.DATE)     @Column(nom="S_DATE")     private Date startDate;     @Transient private long syncTime;       @PostPersist     @PostUpdate     @PostLoad      private void resetSyncTime() {          System.out.println("Professeur.resetSyncTime called on employee: " + getId());         syncTime = System.currentTimeMillis();      }       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 Date getStartDate() {         return startDate;     }       public void setStartDate(Date startDate) {         this.startDate = startDate;     }       public String toString() {         return "Professeur id: " + getId() + " nom: " + getNom();     } }     Fichier: ProfesseurDebugListener.java   import javax.persistence.PostPersist;   public class ProfesseurDebugListener {   @PostPersist   public void auditNewHire(Professeur emp) {        System.out.println(" called on employee: " + emp.getId());   }   }     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(int id, String nom) {     Professeur emp = new ContractProfesseur();     emp.setId(id);     emp.setNom(nom);     em.persist(emp);     return emp;   }     public void removeProfesseur(int id) {     Professeur emp = findProfesseur(id);     if (emp != null) {       em.remove(emp);     }   }     public Professeur changeProfesseurNom(int id, String newNom) {     Professeur emp = findProfesseur(id);     if (emp != null) {       emp.setNom(newNom);     }     return emp;   }     public Professeur findProfesseur(int id) {     return em.find(Professeur.class, id);   }     public Collection<Professeur> findAllProfesseurs() {     Query query = em.createQuery("SELECT e FROM Professeur e");     return (Collection<Professeur>) 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 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.createProfesseur(1, "nom");     for (Professeur emp : service.findAllProfesseurs()) {       System.out.print(emp);     }     service.changeProfesseurNom(1, "newnom");     for (Professeur emp : service.findAllProfesseurs()) {       System.out.print(emp);     }     service.removeProfesseur(1);       for (Professeur emp : service.findAllProfesseurs()) {       System.out.print(emp);     }       util.checkData("select * from CONTRACT_EMP");       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 Modfier une valeur discriminatrice.

Java Persistane: Comment Modfier une valeur discriminatrice.

      Fichier: AbstractProfesseur.java       import javax.persistence.MappedSuperclass;   @MappedSuperclass public abstract class AbstractProfesseur extends Professeur {     private int vacation;       public int getVacation() {         return vacation;     }       public void setVacation(int vacation) {         this.vacation = vacation;     } }     Fichier: BadProfesseur.java       import javax.persistence.Column; import javax.persistence.DiscriminatorValue; import javax.persistence.Entity;   @Entity(nom="BadEmp") @DiscriminatorValue("BadEmp") public class BadProfesseur extends AbstractProfesseur {     @Column(nom="H_RATE")     private float hourlyRate;       public float getHourlyRate() {         return hourlyRate;     }       public void setHourlyRate(float hourlyRate) {         this.hourlyRate = hourlyRate;     }       public String toString() {         return "PartTimeProfesseur id: " + getId() + " nom: " + getNom();     } }     Fichier: GoodProfesseur.java     import javax.persistence.DiscriminatorValue; import javax.persistence.Entity;   @Entity @DiscriminatorValue("GoodEmp") public class GoodProfesseur extends AbstractProfesseur {     private long salaire;     private long pension;          public long getPension() {         return pension;     }          public void setPension(long pension) {         this.pension = pension;     }          public long getSalary() {         return salaire;     }          public void setSalary(long salaire) {         this.salaire = salaire;     }       public String toString() {         return "GoodProfesseur id: " + getId() + " nom: " + getNom();     } }     Fichier: Professeur.java     import java.util.Date;   import javax.persistence.Column; import javax.persistence.DiscriminatorColumn; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType;   @Entity  @Table(nom="EMP") @Inheritance @DiscriminatorColumn(nom="EMP_TYPE") public abstract class Professeur  {     @Id private int id;     private String nom;     @Temporal(TemporalType.DATE)     @Column(nom="S_DATE")     private Date startDate;       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 Date getStartDate() {         return startDate;     }       public void setStartDate(Date startDate) {         this.startDate = startDate;     }       public String toString() {         return "Professeur id: " + getId() + " nom: " + getNom();     } }     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 void createProfesseur(Professeur emp) {     em.persist(emp);   }     public Collection<Professeur> findAllProfesseurs() {     Query query = em.createQuery("SELECT e FROM Professeur e");     return (Collection<Professeur>) 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 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 = null;     emp = new GoodProfesseur();     emp.setId(1);     emp.setNom("good");     service.createProfesseur(emp);          emp = new BadProfesseur();     emp.setId(2);     emp.setNom("bad");     service.createProfesseur(emp);       System.out.println("Professeurs: ");     for (Professeur emp1 : service.findAllProfesseurs()) {       System.out.print(emp1);     }       util.checkData("select * from EMP");       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>                       ...