org.hibernate.exception.SQLGrammarException: ошибка преобразования при преобразовании значения nvarchar ‘ViewWebApp’ в тип данных int

#sql-server #hibernate #hibernate-native-query

#sql-сервер #спящий режим #hibernate-native-query

Вопрос:

Я пытаюсь использовать функцию NativeQuery в режиме гибернации с помощью JOIN и подзапросов в SQL-запросе, когда я передаю список параметров с условием, что он не работает.

Код:

 Query query1 = entityManager.createNativeQuery("select product0_.* from TEST.PRODUCT product0_ n"  
    "LEFT JOINn"  
    "(select DISTINCT product1_.PRODUCT_ID from TEST.PRODUCT_GROUP_PERMISSION product1_ n"  
    "where product1_.GROUP_ID = 101 and product1_.PERMISSION_TYPE_ID in (:permissionTypes)n"  
    ") n"  
    "AS ProductID ON product0_.PRODUCT_ID = ProductID.PRODUCT_ID where product0_.NAME=:productName and product0_.ACTIVE='1' n"  
    "and product0_.APPLICATION_ID = AppID.APPLICATION_ID order by upper(display_version)")
    .setParameter("productName",productName)
    .setParameter("permissionTypes",permissionTypes);
 

Ошибка:

javax.persistence.Исключение PersistenceException: org.hibernate.exception.SQLGrammarException: не удалось выполнить запрос] с основной причиной com.microsoft.sqlserver.jdbc.SQLServerException: ошибка преобразования при преобразовании значения nvarchar ‘ViewWebApp’ в тип данных int .

Комментарии:

1. @James Пожалуйста, не тратьте свое драгоценное время на редактирование вопроса всегда, чтобы получить очки

2. Я не получаю никаких баллов за редактирование вопросов

Ответ №1:

Метод создания запроса в режиме гибернации:

  Query cQuery = entityManager.createQuery("select product0_ from Product product0_ where product0_.name =:productN and product0_.active='1' and product0_.productId in (select product1_.application.applicationId from ApplicationGroupPermission product1_ where product1_.groups in (:myGroupIds) and product1_.permissionType.permissionTypeField in (:pList)) order by product0_.displayVersion asc ")
                .setParameter("productN",productName)
                .setParameter("pList",permissionTypes)
                .setParameter("myGroupIds",myGroups);