Учитывая следующий код, я пытаюсь определить, является ли конкретное поле в модели сущности 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, когда поле является датой, но выдает то же предупреждение (очевидно)