anchor.diff:     
   == Cykl życia   
    * Transient - obiekt istnie w pamięci i jest rozłączony od kontekstu Hibernate. Taki obiekt nie może być zarządzany przez Hibernate
  - * Persistence - obiekt istnieje w bazie danych. Obiekt jest zarządzany przez Hibernate
  - * Detached - obiekt ma reprezentacje w bazie danych , ale zmiana wartości obiektu nie ma wpływu na reprezentacje bazodanową i odwrotnie.
  +   Tworzony za pomocą operatora new. Nie skojarzony z sesją.
  +   
  +   Utrwalenie:  save(), persist(), saveOrUpdate()
  +   save() i persist() -> Insert
  +   update() i merge() -> Update
  +   
  + * Persistence - obiekt istnieje w bazie danych. Obiekt jest zarządzany przez Hibernate czyli jest związany z sesją.
  + 
  +   Usunięcie : delete()
  + 
  + * Detached - obiekt ma reprezentacje w bazie danych, ale zmiana wartości obiektu nie ma wpływu na reprezentacje bazodanową i odwrotnie.
  +   Był trwały ale został odłączony od sesji.
  +   Możliwy do modyfikacji poza kontekstem.
  +   Przyłączenie do sesji jest możliwe
    * Removed - obiekty były zarządzane przez Hibernate, ale w wyniku operacji remove() zostały skasowane z bazy danych.
   
   ==Session Factory
  +
  +- Służy do tworzenia obiektów Session (tworzenie, zarządzanie i pobieranie Session) 
  +- Jedna na kontekst (singleton pattern)
  +- thread-safe (immutable)
  +- ciężka i kosztowna do stworzenia
  +- konfigurowalna programowo lub poprzez konfiguracją xml
  +
  +
   [source,java]
   ----
   ----
  
positive.code: }
  ----
  
  == Użycie annotacji Hibernate i JPA (podstawy)
  
  @Entity - annotation is defined by the JPA 2.0 specification to annotate an entity bean. An entity
  
negative.code: //ommit mutators and accessors 
  }
  ----
  * One-To-Many 1:N
  Za pomoca kluczu obcego
  
  Za pomoca kluczu głównego
  
  * Many-To-One N:1
  * Many-To-Many N:M
  
  == Object Equality and Identity
     
  