通常我是一个Hibernate用户和我的新项目,我们使用JPA 2.0。
吾道接收具有通用的容器。
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());
}
但我并不想这样做! 因为我使用一个通用的在我的容器! 你有一个想法?