Hibernate - Lớp bền bỉ
Toàn bộ khái niệm của Hibernate là lấy các giá trị từ các thuộc tính lớp Java và duy trì chúng trong một bảng cơ sở dữ liệu. Tài liệu ánh xạ giúp Hibernate xác định cách kéo các giá trị từ các lớp và ánh xạ chúng với bảng và các trường liên quan.
Các lớp Java mà các đối tượng hoặ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 liên tục 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àPlain Old Java Object (POJO) mô hình lập trình.
Có các quy tắc chính sau đây của các lớp liên tục, tuy nhiên, không có quy tắc nào trong số này là yêu cầu khó -
Tất cả các lớp Java sẽ tồn tại đều cần một hàm tạo mặc định.
Tất cả các lớp phải chứa 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 khóa chính của bảng cơ sở dữ liệu.
Tất cả các thuộc tính sẽ tồn tại phải được khai báo là riêng tư và có getXXX và setXXX các phương thức được định nghĩa theo kiểu JavaBean.
Một tính năng trung tâm của Hibernate, proxy, phụ thuộc vào lớp liên tục không phải là lớp cuối cùng hoặc việc triển khai một giao diện khai báo tất cả các phương thức công khai.
Tất cả các lớp không mở rộng hoặc triển khai một số lớp và giao diện chuyên biệt theo yêu cầu của khung EJB.
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 không phải là Enterprise JavaBean.
Ví dụ POJO đơn giản
Dựa trên một số quy tắc đượ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;
}
}