Không nhận được bất kỳ phản hồi nào dưới dạng câu trả lời hoặc thậm chí là nhận xét, tôi đã sẵn sàng từ bỏ, khi tôi tình cờ đọc được bài đăng trên blog tuyệt vời này:
Cách liên kết các loại thông số Hibernate tùy chỉnh với truy vấn JPA
Bài đăng cung cấp hai tùy chọn để kiểm soát các loại mà JPA chuyển qua trình điều khiển đến Postgres (hoặc bất kỳ cơ sở dữ liệu bên dưới thực sự là gì). Tôi đã thực hiện phương pháp tiếp cận bằng cách sử dụng TypedParameterValue
. Đây là mã của tôi trông giống như tiếp tục với ví dụ được đưa ra ở trên:
Query query = entityManager.createNativeQuery(sqlString, MyEntity.class);
query.setParameter("param1", new TypedParameterValue(StringType.INSTANCE, null));
query.setParameter("param2", new TypedParameterValue(DoubleType.INSTANCE, null));
List<MyEntity> = query.getResultList();
Tất nhiên, việc chuyển null
là điều tầm thường cho mọi trong truy vấn, nhưng tôi đang làm điều này chủ yếu để hiển thị cú pháp cho văn bản và cột kép. Trong thực tế, chúng tôi mong đợi ít nhất một vài tham số không phải là null
, nhưng cú pháp trên xử lý tất cả các giá trị, null hoặc bằng cách khác.