Полностью динамически создавайте критерии JPA

Обычно я пользователь Hibernate, и для моего нового проекта мы используем JPA 2.0.

Мой DAO получает контейнер с дженериком.

public class Container<T> {
  private String fieldId;    // example "id"
  private T value;           // example new Long(100) T is a Long
  private String operation;  // example ">"

  // getter/setter
}

Следующие строки не скомпилируются:

if (">".equals(container.getOperation()) {
  criteriaBuilder.greaterThan(root.get(container.getFieldId()), container.getValue());
}

Потому что я должен указать такой тип:

if (">".equals(container.getOperation()) {
  criteriaBuilder.greaterThan(root.<Long>get(container.getFieldId()), (Long)container.getValue());
}

Но я не хочу этого делать! Потому что я использую дженерик в своем контейнере! У вас есть идея?

5
задан Lukas Eder 24 April 2012 в 11:25
поделиться