Основи на JPA

Нужни библиотеки

JPA API

Eclipse Link

Apache Derby

Създаване на модел

  1. В Eclipse създайте нов Java проект – jpa_example
  2. Създайте нов пакет с име org.elsys_bg.jpa.example
  3. В новосъздадения пакет добавете нов клас Student
  4. В новосъздадения клас добавете полета за за име, клас, номер в клас и адрес
  5. Добавете getter и setter за всяко поле и се уверете, че има конструктор без аргументи

Добавяне на JPA функционалност

  1. Създайте нова директория под проекта с име lib
  2. В носъздадената директория изкопирайте derby.jar, eclipselink.jar, javax.persistence_*.jar
  3. Добавете lib директорията към Build Path на проекта
  4. Анотирайте класа Student с @Entity
  5. Добавете ново поле private Long id
  6. Анотирайте полето с @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
package org.elsys_bg.jpa.example;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Student {

 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 private Long id;

 private String name;

 private int number;

 private String adddress;

 private String klass;

 public String getName() {
 return name;
 }

 public void setName(String name) {
 this.name = name;
 }

 public int getNumber() {
 return number;
 }

 public void setNumber(int number) {
 this.number = number;
 }

 public String getAdddress() {
 return adddress;
 }

 public void setAdddress(String adddress) {
 this.adddress = adddress;
 }

 public String getKlass() {
 return klass;
 }

 public void setKlass(String klass) {
 this.klass = klass;
 }

}

Конфигуриране на EclipseLink

  1. Създайте нова директория под jpa_example/src с име META-INF
  2. В новосъздадената директория създайте нов файл с име persistence.xml със следното съдържание
 <?xml version="1.0" encoding="UTF-8" ?>
<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_2_0.xsd"
 version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
 <persistence-unit name="students" transaction-type="RESOURCE_LOCAL">
 <class>org.elsys_bg.jpa.example.Student</class>
 <properties>
 <property name="javax.persistence.jdbc.driver"
   value="org.apache.derby.jdbc.EmbeddedDriver" />
 <property name="javax.persistence.jdbc.url"
 value="jdbc:derby:studentsDb;create=true" />
 <property name="javax.persistence.jdbc.user" value="test" />
 <property name="javax.persistence.jdbc.password" value="test" />
 <property name="eclipselink.ddl-generation" value="create-tables" />
 <property name="eclipselink.ddl-generation.output-mode"
 value="database" />
 </properties>

 </persistence-unit>
</persistence>

Пускане на приложението

  1. Добавете нов клас Application с main метод
package org.elsys_bg.jpa.example;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class Application {

 public static void main(String[] args) {
 EntityManagerFactory factory = Persistence
 .createEntityManagerFactory("students");
 EntityManager em = factory.createEntityManager();
 em.getTransaction().begin();
 Student student = new Student();
 student.setAdddress("Sofia");
 student.setKlass("12a");
 student.setName("Student1");
 student.setNumber(1);
 em.persist(student);
 em.getTransaction().commit();

 em.close();
 }
}

Използвани анотации

@Entity

@Id

@GeneratedValue

@OneToOne

@OneToMany

@ManyToOne

@ManyToMany

Публикувано в Разни. Постоянна връзка.