Почему jakarta.jakartaee-api добавляет «IN (NULL)» в сгенерированный SQL для предиката «в предложении»JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему jakarta.jakartaee-api добавляет «IN (NULL)» в сгенерированный SQL для предиката «в предложении»

Сообщение Anonymous »

Мы используем jakarta.jakartaee-api в качестве зависимости в нашем проекте, чтобы мы могли использовать функции CriteriaBuilder/CriteriaQuery. Массив предикатов используется для создания нескольких условий. Один из предикатов используется для построения предложения «IN».

Код: Выделить всё

jakarta.platform
jakarta.jakartaee-api
11.0.0-M4
provided

Код: Выделить всё

...
predicates = new Predicate[] {
...
criteriaBuilder.in(root.get("zone").in(zoneList))
...
}
criteriaQuery.where(predicates);
Список «zoneList» содержит два элемента.
Сгенерированная часть SQL для предложения «IN» содержит IN (NULL) , поэтому в базе данных не найдено ни одной строки.

Код: Выделить всё

AND (
(
t0.zone IN (?, ?)
) IN (NULL)
)
Почему Джакарта добавляет IN (NULL) в сгенерированный SQL?
Вот полный код Java

Код: Выделить всё

public List report() {
EntityManager em = getEntityManager();
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery criteriaQuery = cb.createQuery(DBEntity.class);
Root root = criteriaQuery.from(DBEntity.class);

Predicate[] predicates =  new Predicate[] {
cb.in(root.get("zone").in(Arrays.asList("Zone 1")))
};

criteriaQuery.where(predicates);
criteriaQuery.select(root);
TypedQuery query = em.createQuery(criteriaQuery);
return query.getResultList();
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... or-a-predi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»