Определите тип поля сущности, используя API критериев, без предупреждения, отображаемого в intelij / compiler - PullRequest
0 голосов
/ 04 декабря 2018

Учитывая следующий код, я пытаюсь определить, является ли конкретное поле в модели сущности java.util.Date при построении запроса с использованием CriteriaBuilder.
Мне удалось определить, что поле на самом деледата, но IDE выдает предупреждение.Я могу игнорировать предупреждение, но:

Как правильно определить тип поля сущности без предупреждения?

CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<ExclFlagViewBE> cq = builder.createQuery(ExclFlagViewBE.class);
Root<ExclFlagViewBE> entity = cq.from(ExclFlagViewBE.class);

Expression<String> field = entity.get(key);
Class<? extends String> type = field.getJavaType();
if (Objects.equals(type, Date.class)) {
    // EVALUATES TO TRUE HERE WHEN THE FIELD IS A java.util.Date
}

Однако яя получаю предупреждение в IntelliJ:

equals() between objects of inconvertible types
Class<capture of ? extends String> and Class<Date>

type.equals(Date.class) также оценивается как true, когда поле является датой, но выдает то же предупреждение (очевидно)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...