JPA Запрос для поля json в Oracle DB - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть JPA-объект как таковой:

import com.fasterxml.jackson.databind.JsonNode; 

@Entity
public class Data {
  @Id
  private Integer id;
  @Lob
  private JsonNode json;
}

Можно ли написать JPQL для запроса значений поля json?

Примерно так:

from Data d where d.json.firstName = :firstName

Я получаю эту ошибку:

QueryException: could not resolve property: firstName

Можно ли настроить ее так, чтобы она игнорировала ошибки разрешения свойств при доступе к полям JsonNode?

1 Ответ

1 голос
/ 28 апреля 2020

Как правило, вы можете выполнить совпадение строк в предложении WHERE. Более конкретный c JSON поиск должен поддерживаться ядром базы данных. Я нашел эту документацию для Oracle DB: https://docs.oracle.com/database/121/ADXDB/json.htm#ADXDB6293 Нечто подобное может работать, но все же проверьте документацию:

SELECT * 
FROM Data d
WHERE json_textcontains(d.json, '$.firstName', firstName);
...