Java 它需要在CriteriaAPI中创建带有日期的谓词,但仍然会得到一个异常。如何构建这样的谓词?

Java 它需要在CriteriaAPI中创建带有日期的谓词,但仍然会得到一个异常。如何构建这样的谓词?,java,spring,hibernate,criteria-api,Java,Spring,Hibernate,Criteria Api,听力类: package ...domain.points.model; @Entity @Table(name = "POINTS") public class Points extends AuditingEntity { ... } 元模型和实体在同一个包中吗点数和点数 你说是 现在,让我们尝试用字符串字段名替换元模型 @Audited @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public cla

听力类:

package ...domain.points.model;
@Entity
@Table(name = "POINTS")
public class Points extends AuditingEntity {
...
}

元模型和实体在同一个包中吗<代码>点数和
点数
你说是

现在,让我们尝试用字符串字段名替换元模型

@Audited
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class AuditingEntity implements Serializable {
    @CreatedDate
    @Column(name = "CREATED_ON")
    protected Date createdOn;
    ......
}
点表

package entities;

public class Point {

    private Long id;
    //Other fields.

    @ID
    @Column(PointTable.ID)
    public Long getId() {
        return id;
    }

    //Other getters and setters.
}

再查一遍。尝试使用Point.fieldName而不是元模型。将stacktrace添加到问题中,并告知您使用的hibernate版本。Please.fieldName是相同的,但是@Entity Points扩展了另一个表,它有字段createdOn,我使用hibernate 5.2.10.Final版本。你的意思是如果你的类点没有扩展任何内容,你可以使用元模型吗?我总是使用字符串,请参见我的更新答案和示例。
@Audited
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class AuditingEntity implements Serializable {
    @CreatedDate
    @Column(name = "CREATED_ON")
    protected Date createdOn;
    ......
}
 Predicate startPredicate = criteriaBuilder.greaterThanOrEqualTo(root.<Date>get("createdOn"), lowerLimit);
package entities;

public class Point {

    private Long id;
    //Other fields.

    @ID
    @Column(PointTable.ID)
    public Long getId() {
        return id;
    }

    //Other getters and setters.
}
package entities.table;

public class PointTable {

    public static final String ID = "id";
    public static final String CREATED_ON = "createdOn";
    //Other fields.
}