Nội dung chính
Định nghĩa
Các lớp Java có các đối tượng hoặc các thể hiện sẽ được lưu trữ trong các bảng cơ sở dữ liệu được gọi là các lớp persistent trong Hibernate. Hibernate hoạt động tốt nhất nếu các lớp này tuân theo một số quy tắc đơn giản, còn được gọi là mô hình lập trình Plain Old Java Object (POJO). Có các quy tắc chính sau đây của các lớp persistent. Tuy nhiên, không có các quy tắc nào là một yêu cầu khó để thực hiện.
- Tất cả các lớp Java persistent cần có constructor mặc định.
- Tất cả các lớp phải có một ID để cho phép dễ dàng xác định các đối tượng của bạn trong Hibernate và cơ sở dữ liệu. Thuộc tính này ánh xạ tới cột khoá chính của một bảng cơ sở dữ liệu (optional).
- Tất cả các thuộc tính phải có phương thức setter và getter.
- Lớp persistent là non-final hoặc được impliments từ interface có các phương thức là public (optional).
- Tất cả các lớp không extend hoặc implement một vài lớp và interface đặc biệt được yêu cầu bởi EJB framework.
Cái tên POJO được sử dụng để nhấn mạnh rằng một đối tượng nhất định là một đối tượng Java thông thường, không phải là một đối tượng đặc biệt, và đặc biệt là một Enterprise JavaBean.
Đối tượng persistent có nghĩa là các đối tượng cụ thể có thể sống trong ứng dụng. Chúng có thể được lưu vào một data store và được tái tạo tại một điểm sau này.
Một ví dụ về Java POJO đơn giản
Dựa trên một vài quy tắc đã đề cập ở trên chúng ta có thể định nghĩa một lớp POJO như sau:
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; } }