Tôi mới để ngủ đông và bắt đầu nghiên cứu hibernate.The chương tôi đang đi qua sử dụng ngủ đông với JDBC() Câu hỏi đầu tiên của tôi là Không hibernate sử dụng jdbc Tôi có thể thấy một số đề cập đến JTA cũng ở đây, như phương thức getCurrentSeessionSession() có được phiên liên quan đến giao dịch JTA hiện tại. JTA và jdbc ở đây ở chế độ ngủ đôngCó hibernate sử dụng jdbc nội bộ hoặc JTA nội bộ hoặc nó có thể cấu hình? "
Câu hỏi2: - Tôi có thể xem đoạn mã dưới đây trong bất kỳ thao tác nào trong chế độ ngủ đông
try{
session=factory.openSession();
tx=session.beginTransaction();
session.save(myClass);
tx.commit();
}
finally{
session.close();
}
Ở đây, tôi muốn hiểu vai trò của dòng // tx = session.beginTransaction(); Theo hiểu biết, mỗi phiên sẽ sử dụng một kết nối. Vì vậy, ngay cả nếu chúng tôi bắt đầu nhiều giao dịch từ cùng một phiên, chúng tôi sẽ sử dụng cùng một kết nối. khi chúng tôi cam kết giao dịch cụ thể, tất cả giao dịch được tạo từ cùng một phiên sẽ được thực hiện một lần. Vậy chúng ta đang cố gắng đạt được điều gì với // tx = session.beginTransaction(); ?
Cảm ơn Ryan Đối với câu trả lời như vậy. Chỉ còn hai điểm nữa thôi. Như bạn đã nói "JDBC là API tiêu chuẩn mà các ứng dụng Java sử dụng để tương tác với cơ sở dữ liệu", tôi có thể nói mọi ứng dụng java sẽ sử dụng jdbc để kết nối với cơ sở dữ liệu một cách rõ ràng hoặc nội bộ (trong trường hợp bất kỳ công cụ orm nào như hibernate) hoặc EJB. Bạn đã nói "JTA là API chuẩn để quản lý giao dịch trên một hoặc nhiều tài nguyên". Tôi có kịch bản này trong một ứng dụng java tôi có hai lược đồ khác nhau làm cơ sở dữ liệu. Ở đây tôi vẫn sẽ được sử dụng jdbc cho cả cơ sở dữ liệu/lược đồ. Ngoài ra tôi sẽ được sử dụng JTA ở đây để quản lý tiếp tục ..... –
tiếp tục ... các giao dịch trên cả hai schemas.Right? –
@Mohit: Nó sẽ là một ứng dụng Java cực kỳ hiếm có kết nối với một cơ sở dữ liệu khác với JDBC. Tôi đã không bao giờ nghe nói về một bản thân mình, nhưng nó * có thể * xảy ra. Đối với JTA, nó chỉ là API giao dịch JEE. Có nhiều cách khác để quản lý các giao dịch, chẳng hạn như quản lý giao dịch của Spring (có thể, tuy nhiên, cũng tích hợp với JTA). Nếu bạn muốn phân phối các giao dịch, tôi không biết nhiều về chúng, nhưng tôi nghĩ bạn có thể sẽ muốn thực hiện JTA. –