Active-Record



Active-Record
— шаблон проектирования, который поощряет внедрение в сам объект функций, таких как Insert, Update и Delete, и свойств, которые соответствуют столбцам некой базовой таблицы в базе данных.



Основная идея шаблона Active Record заключается в том, чтобы позволить объекту инкапсулировать данные и операции с базой данных, которые вы можете выполнять с ним. То есть, мы передаем классу некоторый набор значений, который затем внутри этого класса будет преобразован в запрос SQL и выполнен.



Такой подход позволяет нам не использовать запросы SQL напрямую. И кроме того, позволяет сделать код более безопасным, так как если нельзя выполнить любой запрос напрямую, то и выполнение SQL инъекций становится более затруднительным или даже невозможным.



Посмотрим простой пример:



@Entity



public class ChessPlayer extends PanacheEntity {



public String firstName;



public String lastName;



public LocalDate birthDate;



@Version



public int version;



public void setLastName(String lastName) {



this.lastName = lastName.toUpperCase();



}



}




В результате будет сформирован SQL запрос следующего вида:



  insert 



into



ChessPlayer



(birthDate, firstName, lastName, version, id)



values



(?, ?, ?, ?, ?)




Останется только добавить значения для соответствующих переменных при обращении к данному классу.