Tôi muốn nhận kết nối jdbc từ phiên ngủ đông.There là phương thức bên trong phiên ngủ đông tức là session.connection(); nhưng nó đã không được chấp nhận. tôi biết điều này làm việc vẫn còn nhưng tôi không muốn sử dụng phương pháp không được chấp nhận như tôi chắc chắn họ phải có cung cấp một số thay thế cho điều này? Tại http://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/Session.html phương thức kết nối api nói sử dụng org.hibernate.jdbc.Work cho mục đích này nhưng tôi không tìm thấy bất kỳ ví dụ nào về điều đó?Cách nhận kết nối jdbc từ phiên ngủ đông?
Trả lời
Đây là cách bạn có thể sử dụng nó:
session.doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
//connection, finally!
}
});
Câu hỏi: Tôi nhận được ' doWork không hợp lệ nếu không có giao dịch hoạt động' với mã này, làm thế nào để tôi bắt đầu một giao dịch? – OscarRyz
@OscarRyz: nếu bạn đang sử dụng Spring, '@ Transactional' hoặc' TransactionTemplate' là đủ. Trong nguyên Hibernate bạn phải [chạy 'session.beginTransaction()' thủ công] (http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/transactions.html#transactions-basics). –
Hi Buddy .. Câu trả lời hay nhưng doWork() cũng không còn được dùng nữa. – Logicalj
Tôi đã có một vấn đề tương tự và tôi đã sử dụng lớp ConnectionProvider
để có được kết nối. Xem giải pháp của tôi:
Session session = entityManager.unwrap(Session.class);
SessionFactoryImplementor sessionFactoryImplementation = (SessionFactoryImplementor) session.getSessionFactory();
ConnectionProvider connectionProvider = sessionFactoryImplementation.getConnectionProvider();
try {
connection = connectionProvider.getConnection();
...
}
Hãy thử điều này:
((SessionImpl)getSession()).connection()
Đối với bất kỳ ai nhận được ở đây không có sẵn (giống như tôi): ['Session.connection'] (http://docs.jboss.org/hibernate/core/3.5/api/org/ phương thức hibernate/Session.html # connection% 28% 29) hiện không được chấp nhận. – Dinei
không bao giờ truyền tới Impl! nội bộ của nó! (org.hibernate.internal.SessionImpl). Và bạn không thể kiểm tra mã này bằng một mô hình nữa. Điều này là xấu vì nhiều lý do. – Rainer
- 1. Sự khác biệt và mối quan hệ giữa phiên ngủ đông và hồ bơi kết nối?
- 2. ngủ đông bị từ chối kết nối cho cổng mysql không mặc định
- 3. Phiên ngủ đông trong lớp bên trong
- 4. nhận tên giản đồ mặc định ngủ đông lập trình từ nhà máy phiên?
- 5. thứ tự ngủ đông theo liên kết
- 6. ehcache + ngủ đông
- 7. JDBC- postgres, kết nối từ chối
- 8. Alternatives để ngủ đông
- 9. Kết nối JDBC treo
- 10. Làm thế nào để bạn ngắt kết nối một đối tượng khỏi phiên ngủ đông trong grails?
- 11. cách đo hiệu suất ngủ đông?
- 12. theo dõi kết nối JDBC
- 13. Kết nối JDBC trong Android
- 14. phím tổ hợp ngủ đông
- 15. Kết nối JDBC an toàn
- 16. Hồ bơi kết nối JDBC Tomcat (phát hành kết nối)
- 17. bộ nhớ đệm ngủ đông lưu là gì?
- 18. Sử dụng ngủ đông với generics
- 19. Tạo hạt thực thể ngủ đông từ XSD
- 20. Thiếu kết nối trong hồ bơi kết nối jdbc tomcat
- 21. câu hỏi độc đáo cột ngủ đông
- 22. Làm cách nào để buộc ngủ đông phát hành bộ nhớ khi phiên được đóng?
- 23. Python 3 - Kết nối với JDBC
- 24. Biểu thức trong tiêu chí ngủ đông
- 25. Lỗi khi kết nối bằng JDBC Mysql
- 26. Tomcat và kết nối JDBC pooling
- 27. Java JDBC tình trạng kết nối
- 28. Thực hành tốt: Kết nối JDBC
- 29. Kết nối JDBC- Class.forName vs Class.forName(). NewInstance?
- 30. Kết nối JDBC không thành công với ORA-12516
Nếu có ai đánh dấu một câu hỏi như là một bản sao xin vui lòng bao gồm một liên kết đến một trong những câu hỏi khác mà đã có một câu trả lời, –