SlideShare a Scribd company logo
1 of 20
Download to read offline
Java Persistence API (JPA):
ΠžΡΠ½ΠΎΠ²Ρ‹



 АндрСй Π ΠΎΠ΄ΠΈΠΎΠ½ΠΎΠ²
 (Π½Π° основС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² ΠœΠΈΡ…Π°ΠΈΠ»Π° Вайсмана)



                                           1
Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅
β€’   Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ O/R Mapper (ORM)?
β€’   Π§Ρ‚ΠΎ Π½Π°ΠΌ Π΄Π°Π΅Ρ‚ JPA?
β€’   O/R ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ
β€’   Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Entity?
β€’   ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ модСль JPA
β€’   EntityManager ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ управлСния Entity
β€’   Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Entity




                                                      2
ΠŸΠΎΡ‡Π΅ΠΌΡƒ Object/Relational Mapping?

β€’ Одна ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… частСй любого энтСрпрайз
  прилоТСния – ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ persistence
   –   Доступ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€ΠΌΠ°Π½Π΅Π½Ρ‚Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ
       с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ рСляционной Π‘Π”
β€’ ORM Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя β€œΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅β€ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²
  ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
   –   Π”Π°Π½Π½Ρ‹Π΅ ΠΆΠΈΠ²ΡƒΡ‚ Π² рСляционной Π‘Π”, Ρ‚.Π΅. Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… (Π²
       строчках ΠΈ столбцах)
   –   ΠœΡ‹ ΠΆΠ΅ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π° Π½Π΅ с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ ΠΈ
       столбцами

                                                              3
Π§Ρ‚ΠΎ Π½Π°ΠΌ Π΄Π°Π΅Ρ‚ JPA?
β€’ Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ persistens
    > ИспользованиС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ вмСсто
        слоТных настроСк
    > ΠžΡ‚ΠΊΠ°Π· ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²
β€’ ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ лСгковСсной ΠΌΠΎΠ΄Π΅Π»ΠΈ persistence
    > Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ быстродСйствия
β€’ Π•Π΄ΠΈΠ½Ρ‹ΠΉ API для Java SE ΠΈ Java EE




                                                   4
You'll need three artifacts to implement a
JPA-compliant program

 β€’ An entity class
 β€’ A persistence.xml file
 β€’ A class through which you will insert, update, or find
   an entity




                                                            5
O/R ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ
β€’ ΠžΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ для описания
   ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (mapping)
   >   Бвязи
   >   ОбъСдинСния
   >   Π’Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π‘Π”
   >   Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ для Π‘Π”
   >   МногоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅
β€’ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ
   ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для описания
   ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (mapping)


                                               6
Order
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ
                                 int id
    Customer               M     Customer cust
                                 ...
                       1
   int id
   String name
   int c_rating
   Image photo
   Set<Order> orders   M
   Collection<Phone>
       phones
                                  Phone
   ...
                               int id
                               Collection<Customer>
                           N       custs
                               ...




                                                      7
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ отобраТСния
                                      CUSTOMER
                               ID   NAME   CREDIT   PHOTO


  @Entity(access=FIELD)
  public class Customer {
      @Id
      int id;

      String name;
      @Column(name=β€œCREDIT”)
      int c_rating;
      @Lob
      Image photo;
  }


Умолчания Π² дСйствии:
ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ
расхоТдСния Π² ΠΈΠΌΠ΅Π½Π°Ρ….                                   8
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Entity
@Entity
public class Customer implements Serializable {
   @Id protected Long id;
   protected String name;
   @Embedded protected Address address;
   protected PreferredStatus status;
   @Transient protected int orderCount;

    public Customer() {}

    public Long getId() {return id;}
    protected void setId(Long id) {this.id = id;}

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

    …
}

                                                     9
Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Entity
β€’ Π›ΡŽΠ±ΠΎΠΉ Entity ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ΅Ρ€ΠΌΠ°Π½Π΅Π½Ρ‚Π½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€
   > Он отобраТаСтся Π² ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅
β€’ Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ β€” ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ
    > @Idβ€”ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅/свойство Π² Entity классС
    > @GeneratedValueβ€”Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ гСнСрироватся
       автоматичСски, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ стратСгии
       (SEQUENCE, TABLE, IDENTITY, AUTO)
β€’ Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ – ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс
   > @EmbeddedIdβ€”ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅/свойство Π² Entity классС
   > @IdClass—соотвСтствуСт мноТСству ΠΏΠΎΠ»Π΅ΠΉ Π² Entity
       классС


                                                      10
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ модСль JPA
β€’ Entity это простой Java класс (POJO)
β€’ Для описания класс ΠΊΠ°ΠΊ Entity ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ
   Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ
@Entity
public class Employee {
    // Persistent/transient fields
    // Property accessor methods
    // Persistence logic methods
}


                                               11
ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ
 β€’ Аннотации для описания ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Entity
   >   @OneToOne
   >   @OneToMany
   >   @ManyToOne
   >   @ManyToMany




                                                   12
EntityManager
β€’ УправляСт ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Entity ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²
    > persist() - ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Π‘Π”
    > remove() - удаляСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· Π‘Π”
    > merge() - синхронизируСт с Π‘Π” состояниС
         отсоСдинСнного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
    > refresh() - обновляСт ΠΈΠ· Π‘Π” состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°




                                                      13
ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Persist
public Order createNewOrder(Customer customer) {
  // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
  Order order = new Order(customer);

    // ПослС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° persist() ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ мСняСт свой
    // статус Π½Π° управляСмый. Π’ΠΎ врСмя ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ
    // ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи Π² Π‘Π” ΠΎΠ±Π΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π² Π‘Π”.
    entityManager.persist(order);

    return order;
}
                                                      14
ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Find ΠΈ Remove
public void removeOrder(Long orderId) {
  Order order =
       entityManager.find(Order.class, orderId);

    // ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ ΠΈΠ· Π‘Π” ΠΏΡ€ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ
    // ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи Π² Π‘Π”. Доступ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ
    // ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ нСпрСдсказуСмым
    // Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ.
     entityManager.remove(order);
}

                                                   15
ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Merge
public OrderLine updateOrderLine(OrderLine orderLine) {

    // ΠœΠ΅Ρ‚ΠΎΠ΄ merge Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ копию
    // ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ отсодинСнного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Если состояниС
    // отсоСдинного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, Ρ‚ΠΎ измСнСния
    // Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.
     return entityManager.merge(orderLine);
}



                                                          16
Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Entity




                        17
Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ EntityManager

β€’ Π Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ EntityManager ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Ρ€Π°Π·Π½ΠΎΠΌΡƒ
    > УправляСмый ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ EntityManager (Java EE)
        создаСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ ΠΈ становится доступным для
        прилоТСния Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ
        аннотация @PersistenceContext.
    > УправляСмый ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ EntityManager (Java SE)
        создаСтся ΠΈ закрываСтся (уничтоТаСтся)
        ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.




                                                           18
19
Бпасибо!




           20

More Related Content

What's hot

ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрноС взаимодСйствиС ΠΏΠΎΠ΄ android Π² дСталях
ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрноС взаимодСйствиС ΠΏΠΎΠ΄ android Π² Π΄Π΅Ρ‚Π°Π»ΡΡ…ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрноС взаимодСйствиС ΠΏΠΎΠ΄ android Π² дСталях
ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрноС взаимодСйствиС ΠΏΠΎΠ΄ android Π² дСталях
Kirill Zotin
Β 
Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈΠ”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
DEVTYPE
Β 
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Django
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° DjangoΠ Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Django
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Django
MoscowDjango
Β 
ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 17 основы xml
ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 17 основы xmlΠΌΠΎΠ΄ΡƒΠ»ΡŒ 17 основы xml
ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 17 основы xml
Yevgeniy Gertsen
Β 
ΡƒΠΊ 03.002.01 2011
ΡƒΠΊ 03.002.01 2011ΡƒΠΊ 03.002.01 2011
ΡƒΠΊ 03.002.01 2011
etyumentcev
Β 

What's hot (15)

ЛСкция Android. Π‘Π” SQLite, ContentProvider, Loader
ЛСкция Android. Π‘Π” SQLite, ContentProvider, LoaderЛСкция Android. Π‘Π” SQLite, ContentProvider, Loader
ЛСкция Android. Π‘Π” SQLite, ContentProvider, Loader
Β 
ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрноС взаимодСйствиС ΠΏΠΎΠ΄ android Π² дСталях
ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрноС взаимодСйствиС ΠΏΠΎΠ΄ android Π² Π΄Π΅Ρ‚Π°Π»ΡΡ…ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрноС взаимодСйствиС ΠΏΠΎΠ΄ android Π² дСталях
ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрноС взаимодСйствиС ΠΏΠΎΠ΄ android Π² дСталях
Β 
Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈΠ”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
Β 
IDEF - basics of
IDEF - basics ofIDEF - basics of
IDEF - basics of
Β 
ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΠΎΠΏ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ классов Π² C#
ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΠΎΠΏ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ классов Π² C#ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΠΎΠΏ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ классов Π² C#
ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΠΎΠΏ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ классов Π² C#
Β 
Ado.net module 6 entity framework
Ado.net module 6 entity frameworkAdo.net module 6 entity framework
Ado.net module 6 entity framework
Β 
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Django
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° DjangoΠ Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Django
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Django
Β 
Бущности Π² Drupal 7
Бущности Π² Drupal 7Бущности Π² Drupal 7
Бущности Π² Drupal 7
Β 
Spring AOP
Spring AOPSpring AOP
Spring AOP
Β 
C++ Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ. ЗанятиС 05.
C++ Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ. ЗанятиС 05.C++ Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ. ЗанятиС 05.
C++ Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ. ЗанятиС 05.
Β 
ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 17 основы xml
ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 17 основы xmlΠΌΠΎΠ΄ΡƒΠ»ΡŒ 17 основы xml
ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 17 основы xml
Β 
ΡƒΠΊ 03.002.01 2011
ΡƒΠΊ 03.002.01 2011ΡƒΠΊ 03.002.01 2011
ΡƒΠΊ 03.002.01 2011
Β 
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
Β 
Java. Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°.
Java. Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°.Java. Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°.
Java. Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°.
Β 
Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² язык программирования Β«JavaΒ»
Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² язык программирования Β«JavaΒ»Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² язык программирования Β«JavaΒ»
Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² язык программирования Β«JavaΒ»
Β 

Similar to Java Persistence API (JPA) Basics

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… бизнСс ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Domain Com...
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… бизнСс ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Domain Com...Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… бизнСс ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Domain Com...
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… бизнСс ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Domain Com...
GetDev.NET
Β 
ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ WPF MVVM бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ WPF MVVM бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ WPF MVVM бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ WPF MVVM бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
GoSharp
Β 
ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ программирования
ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ программированияпаттСрны программирования
ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ программирования
guestfc8ae0
Β 
Как ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдованиС ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° Swift
Как ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдованиС ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° SwiftКак ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдованиС ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° Swift
Как ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдованиС ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° Swift
Anton Loginov
Β 
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° PHP
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° PHP Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° PHP
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° PHP
Magecom Ukraine
Β 
ΡƒΠΊ 03.003.01 2011
ΡƒΠΊ 03.003.01 2011ΡƒΠΊ 03.003.01 2011
ΡƒΠΊ 03.003.01 2011
etyumentcev
Β 
ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ структура. Π¦Π²Π΅Ρ‚Ρ†ΠΈΡ… ДСнис D2D Just.NET
ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ структура. Π¦Π²Π΅Ρ‚Ρ†ΠΈΡ… ДСнис D2D Just.NETΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ структура. Π¦Π²Π΅Ρ‚Ρ†ΠΈΡ… ДСнис D2D Just.NET
ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ структура. Π¦Π²Π΅Ρ‚Ρ†ΠΈΡ… ДСнис D2D Just.NET
Dev2Dev
Β 
Π€ΠΎΡ„Π°Π½ΠΎΠ² Илья - Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ проСктирования ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ API Π½Π° C#
Π€ΠΎΡ„Π°Π½ΠΎΠ² Илья - Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ проСктирования ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ API Π½Π° C#Π€ΠΎΡ„Π°Π½ΠΎΠ² Илья - Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ проСктирования ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ API Π½Π° C#
Π€ΠΎΡ„Π°Π½ΠΎΠ² Илья - Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ проСктирования ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ API Π½Π° C#
Elias Fofanov
Β 
Rich-client, ΠΈΠ»ΠΈ Как я пСрСстал боятся ΠΈ полюбил вСлосипСды / Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”ΡƒΠΏΠ΅Π»Π΅Π²
Rich-client, ΠΈΠ»ΠΈ Как я пСрСстал боятся ΠΈ полюбил вСлосипСды / Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”ΡƒΠΏΠ΅Π»Π΅Π²Rich-client, ΠΈΠ»ΠΈ Как я пСрСстал боятся ΠΈ полюбил вСлосипСды / Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”ΡƒΠΏΠ΅Π»Π΅Π²
Rich-client, ΠΈΠ»ΠΈ Как я пСрСстал боятся ΠΈ полюбил вСлосипСды / Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”ΡƒΠΏΠ΅Π»Π΅Π²
Ontico
Β 

Similar to Java Persistence API (JPA) Basics (20)

jpa_nus.pdf
jpa_nus.pdfjpa_nus.pdf
jpa_nus.pdf
Β 
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… бизнСс ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Domain Com...
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… бизнСс ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Domain Com...Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… бизнСс ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Domain Com...
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… бизнСс ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Domain Com...
Β 
ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ WPF MVVM бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ WPF MVVM бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ WPF MVVM бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ WPF MVVM бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Β 
ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ программирования
ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ программированияпаттСрны программирования
ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ программирования
Β 
Как ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдованиС ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° Swift
Как ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдованиС ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° SwiftКак ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдованиС ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° Swift
Как ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдованиС ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° Swift
Β 
Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² hibernate
Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² hibernateΠ’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² hibernate
Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² hibernate
Β 
Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² Visual Studio 2010 ΠΈ .Net 4.0
Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² Visual Studio 2010 ΠΈ .Net 4.0Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² Visual Studio 2010 ΠΈ .Net 4.0
Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² Visual Studio 2010 ΠΈ .Net 4.0
Β 
C# Web. ЗанятиС 04.
C# Web. ЗанятиС 04.C# Web. ЗанятиС 04.
C# Web. ЗанятиС 04.
Β 
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° PHP
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° PHP Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° PHP
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° PHP
Β 
Π§ΡƒΡ‚ΡŒ слоТнСС Ρ‡Π΅ΠΌ Singleton: Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, IOC, АОП
Π§ΡƒΡ‚ΡŒ слоТнСС Ρ‡Π΅ΠΌ Singleton: Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, IOC, ΠΠžΠŸΠ§ΡƒΡ‚ΡŒ слоТнСС Ρ‡Π΅ΠΌ Singleton: Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, IOC, АОП
Π§ΡƒΡ‚ΡŒ слоТнСС Ρ‡Π΅ΠΌ Singleton: Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, IOC, АОП
Β 
C# Desktop. ЗанятиС 12.
C# Desktop. ЗанятиС 12.C# Desktop. ЗанятиС 12.
C# Desktop. ЗанятиС 12.
Β 
ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм
ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΡΠΈΡΡ‚Π΅ΠΌΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм
ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм
Β 
ΠžΠ±Π·ΠΎΡ€ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ B4
ΠžΠ±Π·ΠΎΡ€ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ B4ΠžΠ±Π·ΠΎΡ€ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ B4
ΠžΠ±Π·ΠΎΡ€ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ B4
Β 
АрхитСктура Π² Agile: слабая ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒ
АрхитСктура Π² Agile: слабая ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒΠΡ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π² Agile: слабая ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒ
АрхитСктура Π² Agile: слабая ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒ
Β 
ΡƒΠΊ 03.003.01 2011
ΡƒΠΊ 03.003.01 2011ΡƒΠΊ 03.003.01 2011
ΡƒΠΊ 03.003.01 2011
Β 
RAD Π½Π° Java: ΠΊΠ°ΠΊ устроСна CUBA Platform?
RAD Π½Π° Java: ΠΊΠ°ΠΊ устроСна  CUBA Platform?RAD Π½Π° Java: ΠΊΠ°ΠΊ устроСна  CUBA Platform?
RAD Π½Π° Java: ΠΊΠ°ΠΊ устроСна CUBA Platform?
Β 
ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ структура. Π¦Π²Π΅Ρ‚Ρ†ΠΈΡ… ДСнис D2D Just.NET
ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ структура. Π¦Π²Π΅Ρ‚Ρ†ΠΈΡ… ДСнис D2D Just.NETΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ структура. Π¦Π²Π΅Ρ‚Ρ†ΠΈΡ… ДСнис D2D Just.NET
ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ структура. Π¦Π²Π΅Ρ‚Ρ†ΠΈΡ… ДСнис D2D Just.NET
Β 
ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ структура
ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ структура
ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ структура
Β 
Π€ΠΎΡ„Π°Π½ΠΎΠ² Илья - Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ проСктирования ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ API Π½Π° C#
Π€ΠΎΡ„Π°Π½ΠΎΠ² Илья - Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ проСктирования ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ API Π½Π° C#Π€ΠΎΡ„Π°Π½ΠΎΠ² Илья - Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ проСктирования ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ API Π½Π° C#
Π€ΠΎΡ„Π°Π½ΠΎΠ² Илья - Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ проСктирования ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ API Π½Π° C#
Β 
Rich-client, ΠΈΠ»ΠΈ Как я пСрСстал боятся ΠΈ полюбил вСлосипСды / Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”ΡƒΠΏΠ΅Π»Π΅Π²
Rich-client, ΠΈΠ»ΠΈ Как я пСрСстал боятся ΠΈ полюбил вСлосипСды / Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”ΡƒΠΏΠ΅Π»Π΅Π²Rich-client, ΠΈΠ»ΠΈ Как я пСрСстал боятся ΠΈ полюбил вСлосипСды / Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”ΡƒΠΏΠ΅Π»Π΅Π²
Rich-client, ΠΈΠ»ΠΈ Как я пСрСстал боятся ΠΈ полюбил вСлосипСды / Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”ΡƒΠΏΠ΅Π»Π΅Π²
Β 

More from SSA KPI

Germany presentation
Germany presentationGermany presentation
Germany presentation
SSA KPI
Β 
Grand challenges in energy
Grand challenges in energyGrand challenges in energy
Grand challenges in energy
SSA KPI
Β 
Engineering role in sustainability
Engineering role in sustainabilityEngineering role in sustainability
Engineering role in sustainability
SSA KPI
Β 
Consensus and interaction on a long term strategy for sustainable development
Consensus and interaction on a long term strategy for sustainable developmentConsensus and interaction on a long term strategy for sustainable development
Consensus and interaction on a long term strategy for sustainable development
SSA KPI
Β 
Competences in sustainability in engineering education
Competences in sustainability in engineering educationCompetences in sustainability in engineering education
Competences in sustainability in engineering education
SSA KPI
Β 
Introducatio SD for enginers
Introducatio SD for enginersIntroducatio SD for enginers
Introducatio SD for enginers
SSA KPI
Β 

More from SSA KPI (20)

Germany presentation
Germany presentationGermany presentation
Germany presentation
Β 
Grand challenges in energy
Grand challenges in energyGrand challenges in energy
Grand challenges in energy
Β 
Engineering role in sustainability
Engineering role in sustainabilityEngineering role in sustainability
Engineering role in sustainability
Β 
Consensus and interaction on a long term strategy for sustainable development
Consensus and interaction on a long term strategy for sustainable developmentConsensus and interaction on a long term strategy for sustainable development
Consensus and interaction on a long term strategy for sustainable development
Β 
Competences in sustainability in engineering education
Competences in sustainability in engineering educationCompetences in sustainability in engineering education
Competences in sustainability in engineering education
Β 
Introducatio SD for enginers
Introducatio SD for enginersIntroducatio SD for enginers
Introducatio SD for enginers
Β 
DAAD-10.11.2011
DAAD-10.11.2011DAAD-10.11.2011
DAAD-10.11.2011
Β 
Talking with money
Talking with moneyTalking with money
Talking with money
Β 
'Green' startup investment
'Green' startup investment'Green' startup investment
'Green' startup investment
Β 
From Huygens odd sympathy to the energy Huygens' extraction from the sea waves
From Huygens odd sympathy to the energy Huygens' extraction from the sea wavesFrom Huygens odd sympathy to the energy Huygens' extraction from the sea waves
From Huygens odd sympathy to the energy Huygens' extraction from the sea waves
Β 
Dynamics of dice games
Dynamics of dice gamesDynamics of dice games
Dynamics of dice games
Β 
Energy Security Costs
Energy Security CostsEnergy Security Costs
Energy Security Costs
Β 
Naturally Occurring Radioactivity (NOR) in natural and anthropic environments
Naturally Occurring Radioactivity (NOR) in natural and anthropic environmentsNaturally Occurring Radioactivity (NOR) in natural and anthropic environments
Naturally Occurring Radioactivity (NOR) in natural and anthropic environments
Β 
Advanced energy technology for sustainable development. Part 5
Advanced energy technology for sustainable development. Part 5Advanced energy technology for sustainable development. Part 5
Advanced energy technology for sustainable development. Part 5
Β 
Advanced energy technology for sustainable development. Part 4
Advanced energy technology for sustainable development. Part 4Advanced energy technology for sustainable development. Part 4
Advanced energy technology for sustainable development. Part 4
Β 
Advanced energy technology for sustainable development. Part 3
Advanced energy technology for sustainable development. Part 3Advanced energy technology for sustainable development. Part 3
Advanced energy technology for sustainable development. Part 3
Β 
Advanced energy technology for sustainable development. Part 2
Advanced energy technology for sustainable development. Part 2Advanced energy technology for sustainable development. Part 2
Advanced energy technology for sustainable development. Part 2
Β 
Advanced energy technology for sustainable development. Part 1
Advanced energy technology for sustainable development. Part 1Advanced energy technology for sustainable development. Part 1
Advanced energy technology for sustainable development. Part 1
Β 
Fluorescent proteins in current biology
Fluorescent proteins in current biologyFluorescent proteins in current biology
Fluorescent proteins in current biology
Β 
Neurotransmitter systems of the brain and their functions
Neurotransmitter systems of the brain and their functionsNeurotransmitter systems of the brain and their functions
Neurotransmitter systems of the brain and their functions
Β 

Java Persistence API (JPA) Basics

  • 1. Java Persistence API (JPA): ΠžΡΠ½ΠΎΠ²Ρ‹ АндрСй Π ΠΎΠ΄ΠΈΠΎΠ½ΠΎΠ² (Π½Π° основС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² ΠœΠΈΡ…Π°ΠΈΠ»Π° Вайсмана) 1
  • 2. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ β€’ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ O/R Mapper (ORM)? β€’ Π§Ρ‚ΠΎ Π½Π°ΠΌ Π΄Π°Π΅Ρ‚ JPA? β€’ O/R ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ β€’ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Entity? β€’ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ модСль JPA β€’ EntityManager ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ управлСния Entity β€’ Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Entity 2
  • 3. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Object/Relational Mapping? β€’ Одна ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… частСй любого энтСрпрайз прилоТСния – ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ persistence – Доступ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€ΠΌΠ°Π½Π΅Π½Ρ‚Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ рСляционной Π‘Π” β€’ ORM Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя β€œΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅β€ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ – Π”Π°Π½Π½Ρ‹Π΅ ΠΆΠΈΠ²ΡƒΡ‚ Π² рСляционной Π‘Π”, Ρ‚.Π΅. Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… (Π² строчках ΠΈ столбцах) – ΠœΡ‹ ΠΆΠ΅ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π° Π½Π΅ с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ ΠΈ столбцами 3
  • 4. Π§Ρ‚ΠΎ Π½Π°ΠΌ Π΄Π°Π΅Ρ‚ JPA? β€’ Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ persistens > ИспользованиС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ вмСсто слоТных настроСк > ΠžΡ‚ΠΊΠ°Π· ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² β€’ ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ лСгковСсной ΠΌΠΎΠ΄Π΅Π»ΠΈ persistence > Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ быстродСйствия β€’ Π•Π΄ΠΈΠ½Ρ‹ΠΉ API для Java SE ΠΈ Java EE 4
  • 5. You'll need three artifacts to implement a JPA-compliant program β€’ An entity class β€’ A persistence.xml file β€’ A class through which you will insert, update, or find an entity 5
  • 6. O/R ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ β€’ ΠžΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ для описания ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (mapping) > Бвязи > ОбъСдинСния > Π’Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π‘Π” > Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ для Π‘Π” > МногоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ β€’ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для описания ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (mapping) 6
  • 7. Order ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ int id Customer M Customer cust ... 1 int id String name int c_rating Image photo Set<Order> orders M Collection<Phone> phones Phone ... int id Collection<Customer> N custs ... 7
  • 8. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ отобраТСния CUSTOMER ID NAME CREDIT PHOTO @Entity(access=FIELD) public class Customer { @Id int id; String name; @Column(name=β€œCREDIT”) int c_rating; @Lob Image photo; } Умолчания Π² дСйствии: ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ расхоТдСния Π² ΠΈΠΌΠ΅Π½Π°Ρ…. 8
  • 9. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Entity @Entity public class Customer implements Serializable { @Id protected Long id; protected String name; @Embedded protected Address address; protected PreferredStatus status; @Transient protected int orderCount; public Customer() {} public Long getId() {return id;} protected void setId(Long id) {this.id = id;} public String getName() {return name;} public void setName(String name) {this.name = name;} … } 9
  • 10. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Entity β€’ Π›ΡŽΠ±ΠΎΠΉ Entity ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ΅Ρ€ΠΌΠ°Π½Π΅Π½Ρ‚Π½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ > Он отобраТаСтся Π² ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ β€’ Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ β€” ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ > @Idβ€”ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅/свойство Π² Entity классС > @GeneratedValueβ€”Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ гСнСрироватся автоматичСски, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ стратСгии (SEQUENCE, TABLE, IDENTITY, AUTO) β€’ Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ – ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс > @EmbeddedIdβ€”ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅/свойство Π² Entity классС > @IdClass—соотвСтствуСт мноТСству ΠΏΠΎΠ»Π΅ΠΉ Π² Entity классС 10
  • 11. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ модСль JPA β€’ Entity это простой Java класс (POJO) β€’ Для описания класс ΠΊΠ°ΠΊ Entity ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ @Entity public class Employee { // Persistent/transient fields // Property accessor methods // Persistence logic methods } 11
  • 12. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ β€’ Аннотации для описания ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Entity > @OneToOne > @OneToMany > @ManyToOne > @ManyToMany 12
  • 13. EntityManager β€’ УправляСт ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Entity ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² > persist() - ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Π‘Π” > remove() - удаляСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· Π‘Π” > merge() - синхронизируСт с Π‘Π” состояниС отсоСдинСнного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° > refresh() - обновляСт ΠΈΠ· Π‘Π” состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° 13
  • 14. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Persist public Order createNewOrder(Customer customer) { // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Order order = new Order(customer); // ПослС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° persist() ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ мСняСт свой // статус Π½Π° управляСмый. Π’ΠΎ врСмя ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ // ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи Π² Π‘Π” ΠΎΠ±Π΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π² Π‘Π”. entityManager.persist(order); return order; } 14
  • 15. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Find ΠΈ Remove public void removeOrder(Long orderId) { Order order = entityManager.find(Order.class, orderId); // ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ ΠΈΠ· Π‘Π” ΠΏΡ€ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ // ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи Π² Π‘Π”. Доступ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ // ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ нСпрСдсказуСмым // Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ. entityManager.remove(order); } 15
  • 16. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Merge public OrderLine updateOrderLine(OrderLine orderLine) { // ΠœΠ΅Ρ‚ΠΎΠ΄ merge Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ копию // ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ отсодинСнного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Если состояниС // отсоСдинного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, Ρ‚ΠΎ измСнСния // Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. return entityManager.merge(orderLine); } 16
  • 18. Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ EntityManager β€’ Π Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ EntityManager ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Ρ€Π°Π·Π½ΠΎΠΌΡƒ > УправляСмый ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ EntityManager (Java EE) создаСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ ΠΈ становится доступным для прилоТСния Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ аннотация @PersistenceContext. > УправляСмый ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ EntityManager (Java SE) создаСтся ΠΈ закрываСтся (уничтоТаСтся) ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. 18
  • 19. 19