diff --git a/derby.log b/derby.log new file mode 100644 index 0000000..732359a --- /dev/null +++ b/derby.log @@ -0,0 +1,10 @@ +---------------------------------------------------------------- +Thu Nov 15 13:30:22 EET 2018: +Booting Derby version The Apache Software Foundation - Apache Derby - 10.8.2.2 - (1181258): instance a816c00e-0167-1722-e50d-000006f22160 +on database directory /mnt/c/Users/Pascal Fares/Documents/NetBeansProjects/testJPAeclipselink/simpleDb with class loader sun.misc.Launcher$AppClassLoader@7f31245a +Loaded from file:/mnt/c/Users/Pascal%20Fares/Documents/NetBeansProjects/testJPAeclipselink/target/alternateLocation/derby-10.8.2.2.jar +java.vendor=Oracle Corporation +java.runtime.version=1.8.0_181-8u181-b13-1ubuntu0.18.04.1-b13 +user.dir=/mnt/c/Users/Pascal Fares/Documents/NetBeansProjects/testJPAeclipselink +derby.system.home=null +Database Class Loader started - derby.database.classpath='' diff --git a/ij.properties b/ij.properties new file mode 100644 index 0000000..e091e16 --- /dev/null +++ b/ij.properties @@ -0,0 +1,3 @@ +ij.protocol=jdbc:derby: +ij.database=simpleDb +ij.maximumDisplayWidth=20 \ No newline at end of file diff --git a/localrun.sh b/localrun.sh new file mode 100644 index 0000000..2d2d709 --- /dev/null +++ b/localrun.sh @@ -0,0 +1,3 @@ +mvn package +cd target +java -cp 'lib/*:testJPAeclipselink-1.0-SNAPSHOT.jar' lb.edu.isae.testjpaeclipselink.jpa.JpaTest diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..ab39cdf --- /dev/null +++ b/pom.xml @@ -0,0 +1,72 @@ + + + 4.0.0 + lb.edu.isae + testJPAeclipselink + 1.0-SNAPSHOT + + + EclipseLink Repo + http://download.eclipse.org/rt/eclipselink/maven.repo + EclipseLink Repo + + + + + + + mysql + mysql-connector-java + 8.0.13 + + + + org.eclipse.persistence + eclipselink + 2.2.1 + + + org.eclipse.persistence + javax.persistence + 2.0.3 + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.1.1 + + + copy-dependencies + package + + copy-dependencies + + + ${project.build.directory}/lib + false + false + true + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.1.0 + + + + true + lib/ + theMainClass + + + + + + + diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..ecedf20 --- /dev/null +++ b/run.sh @@ -0,0 +1 @@ +mvn compile exec:java -Dexec.mainClass=lb.edu.isae.testjpaeclipselink.jpa.JpaTest diff --git a/show-derby.sh b/show-derby.sh new file mode 100644 index 0000000..564a099 --- /dev/null +++ b/show-derby.sh @@ -0,0 +1,2 @@ +mvn dependency:copy-dependencies +java -cp 'target/dependency/*' org.apache.derby.tools.ij -p ij.properties diff --git a/src/main/java/lb/edu/isae/testjpaeclipselink/domain/Department.java b/src/main/java/lb/edu/isae/testjpaeclipselink/domain/Department.java new file mode 100644 index 0000000..e08eff9 --- /dev/null +++ b/src/main/java/lb/edu/isae/testjpaeclipselink/domain/Department.java @@ -0,0 +1,51 @@ +package lb.edu.isae.testjpaeclipselink.domain; + +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.OneToMany; + +@Entity +public class Department { + + @Id + @GeneratedValue + private Long id; + + + private String name; + + @OneToMany(mappedBy="department",cascade=CascadeType.PERSIST) + private List employees = new ArrayList(); + + + + public Department() { + super(); + } + public Department(String name) { + this.name = name; + } + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public List getEmployees() { + return employees; + } + public void setEmployees(List employees) { + this.employees = employees; + } +} diff --git a/src/main/java/lb/edu/isae/testjpaeclipselink/domain/Employee.java b/src/main/java/lb/edu/isae/testjpaeclipselink/domain/Employee.java new file mode 100644 index 0000000..128f7bf --- /dev/null +++ b/src/main/java/lb/edu/isae/testjpaeclipselink/domain/Employee.java @@ -0,0 +1,61 @@ +package lb.edu.isae.testjpaeclipselink.domain; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.ManyToOne; + +@Entity +public class Employee { + @Id + @GeneratedValue + private Long id; + + private String name; + + @ManyToOne + private Department department; + + public Employee() {} + + public Employee(String name, Department department) { + this.name = name; + this.department = department; + } + + + public Employee(String name) { + this.name = name; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Department getDepartment() { + return department; + } + + public void setDepartment(Department department) { + this.department = department; + } + + @Override + public String toString() { + return "Employee [id=" + id + ", name=" + name + ", department=" + + department.getName() + "]"; + } + +} diff --git a/src/main/java/lb/edu/isae/testjpaeclipselink/jpa/JpaTest.java b/src/main/java/lb/edu/isae/testjpaeclipselink/jpa/JpaTest.java new file mode 100644 index 0000000..23656fa --- /dev/null +++ b/src/main/java/lb/edu/isae/testjpaeclipselink/jpa/JpaTest.java @@ -0,0 +1,65 @@ +package lb.edu.isae.testjpaeclipselink.jpa; + +import java.util.List; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.EntityTransaction; +import javax.persistence.Persistence; + +import lb.edu.isae.testjpaeclipselink.domain.Employee; +import lb.edu.isae.testjpaeclipselink.domain.Department; + +public class JpaTest { + + private final EntityManager manager; + + public JpaTest(EntityManager manager) { + this.manager = manager; + } + /** + * @param args + */ + public static void main(String[] args) { + EntityManagerFactory factory = Persistence.createEntityManagerFactory("persistenceUnit"); + EntityManager manager = factory.createEntityManager(); + JpaTest test = new JpaTest(manager); + + EntityTransaction tx = manager.getTransaction(); + tx.begin(); + + test.createEmployees(); + + tx.commit(); + + test.listEmployees(); + + System.out.println(".. done"); + } + + + + + private void createEmployees() { + int numOfEmployees = manager.createQuery("Select a From Employee a", Employee.class).getResultList().size(); + if (numOfEmployees == 0) { + Department department = new Department("java cycle C"); + manager.persist(department); + + manager.persist(new Employee("Pascal E Fares",department)); + manager.persist(new Employee("Etudiant Cnam",department)); + + } + } + + + private void listEmployees() { + List resultList = manager.createQuery("Select a From Employee a", Employee.class).getResultList(); + System.out.println("num of employess:" + resultList.size()); + for (Employee next : resultList) { + System.out.println("next employee: " + next); + } + } + + +} diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..f44e02e --- /dev/null +++ b/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,17 @@ + + + + + false + + + + + + + + + + + +