viblo.asia viblo.asia

Tìm hiểu về RSocket

Rsocket là gì ? RSocket là giao thức truyền thông mới, nhằm giải quyết các vấn đề mà giao thức HTTP hiện tại gặp phải. Rsocket là 1 giao thức nhị phân sử dụng để transport các byte stream như TCP, WebSocket và Aeron. Vậy những hạn chế của giao thức HTTP là gì ? - Nó chỉ support mô hình tương tác request/response - Không hiệu quả - Không reactive Một kiến...

viblo.asia viblo.asia

Map multiple JPA Entities to one database table with hibernate

Overview: Trong nhiều dự án, bạn có thể sẽ gặp phải vấn đề cần mapping nhiều entities vào 1 table duy nhất. Vậy làm thế nào để thực hiện điều này với JPA. Trong bài này mình sẽ giới thiệu cách map nhiều entity vào 1 table. Sử dụng multiple entities có thể giúp tăng tốc xử lý đọc và ghi xuống database. Trong bài viết này mình sẽ sử dụng database...

viblo.asia viblo.asia

Compact DTO projection query with JPA

Giới thiệu Trong bài viết này, mình sẽ giới thiệu cách làm thế nào để viết DTO projection JPQL query bằng cách bỏ đi phần package name khi dùng JPA, Hibernate và Spring. Để hiểu DTO projections là gì thì bạn có thể đọc thêm ở đây. Model Giả sử mình có 1 User entity mapping với UserDto như bên dưới: User entity: CREATE TABLE `user` ( `name` varchar(500) NOT NULL, ...

viblo.asia viblo.asia

Mapping PostgreSQL Interval và Java Duration với Hibernate

Giới thiệu: PostgreSQL Interval là gì? PostgreSQL Interval là kiểu dữ liệu cho phép bạn lưu trữ và thao tác trong một khoảng thời gian tính bằng năm, tháng, ngày, giờ, phút, giây, v.v. Ví dụ : 1 year 2 mons 3 days 02:30:40. Một giá trị interval yêu cầu kích thước lưu trữ 16 byte có thể lưu trữ một khoảng thời gian với phạm vi được phép là từ -178.000.000...

viblo.asia viblo.asia

Collector.filtering và Collectors.flatMapping Trong Java 9

1. Overview Stream.collect() là một trong các phương thức đầu cuối (terminal operation) của Stream API trong Java 8. Nó cho phép thực hiện các thao tác có thể thay đổi trên các phần tử được lưu giữ trong Stream. Chẳng hạn như: chuyển các phần tử sang một số cấu trúc dữ liệu khác, áp dụng một số logic bổ sung, tính toán, … Lớp Java Collectors cung cấp...

viblo.asia viblo.asia

Tìm hiểu về ModelMapper trong Java

1. Tại sao cần phải Map? Các object trong java có cấu trúc tương tự nhay nhưng khác object models, khi muốn set data của object này cho object kia với các field tương ứng, ta phải đi set từng field một rất mất công. Ví dụ ta có 2 Ojbect như bên dưới: public class CustomerDTO { private long customerId = 1; private String fullName = "Robert King"; private String...

viblo.asia viblo.asia

Sync Data From MySQL To ElasticSearch

Giới thiệu: MySQL là gì ? MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở ... Đọc tiếp Elasticsearch là gì ? Elasticsearch là một công cụ tìm kiếm dựa trên nền tảng Apache Lucene... Đọc tiếp Logstash là gì ? Logstash is an open source, server-side data processing pipeline that ingests data from a multitude of sources simultaneously, transforms it, and then sends it to your...