У меня есть таблица MySQL и используется столбец Тип данных json .Я хочу выполнить запрос со столбцом в качестве условия. С JPQL я могу написать его, как показано ниже, используя EntityManager.
Это полностью работает для ниже (выберите все продукты)
Query query = em.createQuery("select o from Product o");
и не работает для функции json_extract + менеджер сущностей
Query query = em.createQuery("select o from Product o where json_extract(o.des,'$.org') = 'ABC'");
, это совершенно не работает для меня и возвращает ошибку ниже
java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
Exception Description: Syntax error parsing [select o from Product o where json_extract(o.des,'$.org') = 'ABC'].
[41, 85] The expression is not a valid conditional expression.
Caused by: org.eclipse.persistence.exceptions.JPQLException:
Exception Description: Syntax error parsing [select o from Product o where json_extract(o.des,'$.org') = 'ABC'].
[41, 85] The expression is not a valid conditional expression.
, тогда я попытался CrudRepository и это сработало, но мне нужно использовать EntityManager вместо CrudRepository
public interface ProductRepository extends CrudRepository<Product, String> {
@Query(value = "select o from Product o where json_extract(o.des,'$.org') = :org")
List<Product> findProdcutsByOrgJPQL(@Param("org") String org);
}
Так что с моим JPQL проблем нет.проблема с EntityManager .
как мне создать JPQL-запрос для JSON_EXTRACT с помощью EntityManager