BATCH PROCESSING LÀ GÌ

  -  
1. Hibernate Batch Processing là gì?

Ta tất cả tình huống như sau: bắt buộc insert 10000 phiên bản ghi vào database

Nếu insert lần lượt với đẩy từng đối tượng người sử dụng một thì thời gian đang rất rất lâu vì yêu cầu mở/đóng góp connection các lần

Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();for ( int i=0; iNếu insert cùng đẩy mặt khác thuộc 1 lúc 10000 phiên bản ghi thì đang xẩy ra lỗi OutOfMemoryException (Lý bởi vì là hibernate đang lưu tất cả 10000 bạn dạng ghi vào bộ lưu trữ cabít nhưng bộ lưu trữ cabịt ko đủ)Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();for ( int i=0; i=> Giải pháp: Batch Processing

Vậy Batch Processing là gi? Batch Processing là xử lý theo lô, tức là ta đã insert với đẩy từng lô phiên bản ghi vào database.

Bạn đang xem: Batch processing là gì

*

Ví dụ ở chỗ này ta vẫn insert với đẩy 50 bạn dạng ghi vào database cùng 1 thời điểm, như vậy vẫn sút số lượng connection tới database, đồng thời tránh khỏi lỗi OutOfMemoryException

Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction(); for ( int i=0; i2. Batch Insertslúc bạn tạo nên bắt đầu đối tượng người sử dụng persistent, thực hiện các method flush() và clear() để tinh chỉnh kích thương của bộ nhớ cabịt.

Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction(); for ( int i=0; i3. Batch UpdateCũng giống như lúc insert, Khi truy nã xuất, update tài liệu hãy dùng những method flush() và clear() nhằm tinh chỉnh kích thương thơm của bộ lưu trữ cabịt. Ngoài ra sử dụng method scroll() để tận dụng các con trỏ sống server cho các tầm nã vấn trả về nhiều sản phẩm dữ liệu.

Xem thêm: You Are Welcome Là Gì ? Dùng You'Re Welcome Trường Hợp Nào

Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction(); ScrollableResults customers = session.getNamedQuery("GetCustomers") .setCacheMode(CacheMode.IGNORE) .scroll(ScrollMode.FORWARD_ONLY);int count=0;while ( customers.next() ) Customer customer = (Customer) customers.get(0); customer.updateStuff(...); if ( ++count % trăng tròn == 0 ) //flush a batch of updates và release memory: session.flush(); session.clear(); tx.commit();session.close();4. StatelessSessionTrái cùng với Session, StatelessSession không có cache-level 1 hoặc giao tiếp cùng với cache-màn chơi 2. Nó cũng ko đính thêm với 1 Persistence Context như thế nào.

Xem thêm: Bounty Là Gì ? Có Thực Sự Kiếm Tiền Được Với Mô Hình Này Không ?

StatelessSession session = factory.openStatelessSession();Transaction tx = session.beginTransaction(); for ( int i=0; i

References:

https://docs.jboss.org/hibernate/orm/4.0/devguide/en-US/html/ch04.html


This entry was posted in FAQ, Framework, Hibernate and tagged faq, framework, Frequently Asked Questions, hibernate. Bookmark the permaliên kết.

Điều phía bài viết