Hibernate - постоянный класс
Вся концепция Hibernate состоит в том, чтобы взять значения из атрибутов класса Java и сохранить их в таблице базы данных. Документ сопоставления помогает Hibernate определить, как извлекать значения из классов и сопоставлять их с таблицей и связанными полями.
Классы Java, объекты или экземпляры которых будут храниться в таблицах базы данных, называются постоянными классами в Hibernate. Hibernate работает лучше всего, если эти классы следуют некоторым простым правилам, также известным какPlain Old Java Object (POJO) модель программирования.
Существуют следующие основные правила постоянных классов, однако ни одно из этих правил не является жестким требованием -
Все классы Java, которые будут сохранены, нуждаются в конструкторе по умолчанию.
Все классы должны содержать идентификатор, чтобы можно было легко идентифицировать ваши объекты в Hibernate и базе данных. Это свойство сопоставляется со столбцом первичного ключа таблицы базы данных.
Все атрибуты, которые будут сохранены, должны быть объявлены частными и иметь getXXX и setXXX методы, определенные в стиле JavaBean.
Центральная функция Hibernate, прокси, зависит от того, является ли постоянный класс неокончательным, или от реализации интерфейса, объявляющего все общедоступные методы.
Все классы, которые не расширяют или не реализуют некоторые специализированные классы и интерфейсы, необходимые для инфраструктуры EJB.
Имя POJO используется, чтобы подчеркнуть, что данный объект является обычным Java-объектом, а не специальным объектом и, в частности, не Enterprise JavaBean.
Простой пример POJO
Основываясь на нескольких правилах, упомянутых выше, мы можем определить класс POJO следующим образом:
public class Employee {
private int id;
private String firstName;
private String lastName;
private int salary;
public Employee() {}
public Employee(String fname, String lname, int salary) {
this.firstName = fname;
this.lastName = lname;
this.salary = salary;
}
public int getId() {
return id;
}
public void setId( int id ) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName( String first_name ) {
this.firstName = first_name;
}
public String getLastName() {
return lastName;
}
public void setLastName( String last_name ) {
this.lastName = last_name;
}
public int getSalary() {
return salary;
}
public void setSalary( int salary ) {
this.salary = salary;
}
}