Mặc dù đọc về nó thì hiểu là JPA là interface còn Hibernate là cài đặt của interface đó. Nhưng khi xem các demo jpa và hibernate thì không thấy đúng lắm. Mọi người ai hiểu sâu rõ, có thể cho mình cái demo code kiểu ví dụ cho mình hiểu được không ạ.
JPA và Hibernate trong Java, cần người thông não giúp
Bạn thấy không đúng ở đâu phải nói cụ thể người khác mới biết đê hỗ trợ được chứ.
Còn về phía JPA và Hibernate thì JPA chỉ là một phương pháp để truy cập dữ liệu trong CSDL (phương pháp nghĩa một bản đặc tả trên giấy tờ, mô tả kiểu là @Table
có ý nghĩa ánh xạ 1 class tương ứng với 1 bảng trong CSDL, @Column
tương ứng với 1 cột).
Bạn phải để ý JPA là 1 bản đặc tả (http://download.oracle.com/otn-pub/jcp/persistence-2_1-fr-eval-spec/JavaPersistence.pdf) chỉ gồm các interface để định nghĩa, không hề có 1 đoạn code nào để thực thi việc ánh xạ. Việc thực thi phải sử dụng thêm các framework khác (Hibernate là 1 ví dụ về framework này).
Hiểu đơn giản là nếu không sử dụng Hibernate, mình vẫn có thể sử dụng đc mấy cái annotation @Table
, @Column
trong class. Nhưng mà các annotation kiểu để làm cảnh cho đẹp, chẳng để làm gì cả, vì chúng chỉ để ĐỊNH NGHĨA, kiểu có súng nhưng mà không có đạn bên trong ấy . Khi sử dụng thêm Hibernate, do Hibernate được implement theo chuẩn JPA (cái link ở trên). Nó sẽ biết và XỬ LÝ VIỆC ÁNH XẠ DỮ LIỆU. Kiểu như à class này có @Table
nghĩa là ánh xạ với bảng, vậy là tao sẽ thực hiện việc ánh xạ và lấy data từ CSDL để cho vào class này. @Column
nghĩa là ánh xạ với cột, tao cũng sẽ biết và lấy data trong CSDL cho vào thuộc tính gì đó trong class,…