jpa dữ liệu mùa xuân 1.4.3 với Oracle 11g.JPA được đặt tên truy vấn khớp với danh sách các bộ dữ liệu trong mệnh đề IN
Tôi có một thực thể như thế này:
class LinkRecord {
String value;
int linkType;
...
}
Tôi đang sử dụng (giá trị, linkType) như là một chỉ số tổng hợp. Đối với một danh sách (v, t) tuples, chúng ta cần phải chọn tất cả các bản ghi trong DB để giá trị = v, linkType = t.
Về cơ bản, tôi muốn xây dựng truy vấn này:
SELECT * FROM LINK_RECORD WHERE (VALUE, LINK_TYPE) IN (('value1', 0), ('value2', 25), ...)
nơi danh sách trong mệnh đề IN được thông qua tại như một param.
Vì chúng tôi đang làm việc với một lượng lớn dữ liệu nên sẽ rất khó để truy vấn từng bộ một.
Trong kho của tôi, tôi đã cố gắng này:
@Query("select r from LinkRecord r where (r.value, r.linkType) in :keys")
List<LinkRecord> findByValueAndType(@Param("keys")List<List<Object>> keys);
nơi phím là danh sách (danh sách có độ dài 2). Điều này giúp tôi ORA_00920: toán tử quan hệ không hợp lệ.
Có cách nào để thực hiện công việc này bằng truy vấn được đặt tên không? Hoặc tôi có phải nghỉ dưỡng để sql bản địa?
Cảm ơn sự giúp đỡ của bạn.