日历上的条件搜索

我正在尝试按一年搜索,但在我的实体中,它是日历。 我正在使用条件,这是条件代码:

CriteriaBuilder cb = em.getcriteriaBuilder();
        CriteriaQuery<EntradaAngulo> cq = cb.createQuery(EntradaAngulo.class);
        Root<EntradaAngulo> root = cq.from(EntradaAngulo.class);
        List<Predicate> predicates = new ArrayList<>();

        Join<EntradaAngulo,CarreraHorizontal> childJoin = null;
        Join<CarreraHorizontal,Empleado> childJoin2 = null;
        Join<EntradaAngulo,AnguloEvaluacion> fatherJoin = null;

        if (!StringUtils.isEmpty(apellido1) || !StringUtils.isEmpty(apellido2) || !StringUtils.isEmpty(nombre)
                || !StringUtils.isEmpty(numEmpleado) || manual || enIncidenciaFilter || habilitadoFilter || !StringUtils.isEmpty(anyo)) {

            childJoin = root.join("carreraHorizontal",JoinType.LEFT);
            childJoin2 = childJoin.join("empleado");
            fatherJoin = root.join("anguloEvaluacion",JoinType.LEFT);

            if(!StringUtils.isBlank(anyo)) {

                Calendar calendar = Calendar.getInstance();

                calendar.set(Calendar.YEAR,Integer.parseInt(anyo)+1);
                calendar.set(Calendar.DAY_OF_MONTH,1);
                calendar.set(Calendar.MONTH,0);

                Calendar calendarAux = Calendar.getInstance();
                calendarAux.set(Calendar.YEAR,Integer.parseInt(anyo)-1);
                calendarAux.set(Calendar.DAY_OF_MONTH,1);
                calendarAux.set(Calendar.MONTH,0);

                predicates.add(cb.between((Calendar)fatherJoin.get("anyo"),calendar,(Calendar) fatherJoin.get("anyo"),calendarAux));
                //predicates.add(cb.between(fatherJoin.get("anyo"),fatherJoin.get("anyo"),fatherJoin.get("anyo")));

                predicates.add(cb.greaterThanOrEqualTo(fatherJoin.get("anyo"),calendar)); 

这是我的实体:

@Entity
@Table(name = "angulo_evaluacion")
public class AnguloEvaluacion implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    /**
     */
    @NotNull
    @Column(name = "ae_anyo",unique = true)
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "M-")
    private Calendar anyo;

我试图在两个Calendar之间进行搜索,以便可以在中间输入年份,但是我从IDE中获取语法错误。 有人在想我要忽略的东西吗?

su0123456789 回答:日历上的条件搜索

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3104134.html

大家都在问