12 Şubat 2019 Salı

Active Record Örüntüsü

Giriş
Açıklaması şöyle
Veriye erişmek için iki tane yöntem var.
1. Entity-Repository 
2. Active Record.
Aralarındaki fark şöyle

Entity-Repository 
Açıklaması şöyle. Bu aslında SpringBoot'un uyguladığı şey. Entity nesnesi sadece kendi alanlarını bilir. Veri tabanı işlemleri ayrı bir Repository sınıfındadır
An implementation of the Entity-Repository Pattern brings an Entity as a pure object and, when needed, a respective Repository class to encapsulate any of this entity's database integration and operations. Database calls can be managed by the context lifecycle and are not mixed with business logic.
Örnek
Şöyle yaparız
@Entity
public class Person {
    private @Id Long id;
    private @Column String name;
    private @Column LocalDate birthday;
    private @ManyToOne List<Address> addresses;
}

public interface PersonRepository extends <Person, String> {}
Kullanım şöyledir. Tüm veri tabanı kodları Repository sınıfında.
Person person =...; // persist a person repository.save(person); List<Person> people = repository.listAll(); // finding a specific person by ID person = repository.findById(personId);
Active Record Örüntüsü
Açıklaması şöyle.
An active record class encapsulates not only the data but also its persistence operations.
Açıklaması şöyle
When using the Active Record Pattern, the entity holds its attributes, persistence methods, and even database connection details. It is, therefore, an "active" entity that can persist and manage itself, ...
Örnek
Şöyle yaparız
@Entity
public class Person extends PanacheEntity {
 {  public String name;
    public LocalDate birthday;
    public List<Address> addresses;
}
Kullanım şöyledir. Tüm veri tabanı kodları Entity sınıfında.
Person person =...;

// persist a person
person.persist();
List<Person> people = Person.listAll();

// finding a specific person by ID
person = Person.findById(personId);


Hiç yorum yok:

Yorum Gönder