EasyCriteria:我们无法在给定的 class 分配中找到参数:creationDate

EasyCriteria: We could not find the parameter: creationDate in the given class Assignment

所以,我正在做一个 EasyCriteria 查询。

我有一个映射的超类:

@MappedSuperclass
public abstract class CreatedEntity extends IdEntity implements Creatable {

    private static final long serialVersionUID = 1L;

    @ManyToOne
    @JoinColumn(name="fk_creation_userid")
    protected UserId creationUserId;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name="creation_date")
    protected Date creationDate;

然后我有一个进行 EasyCriteria 查询的子类:

@Entity
@Table(name = "assignment")
public class Assignment extends CreatedEntity {

final EasyCriteria<Assignment> ec = easyCriteria(Assignment.class);

            ec.setDistinctTrue();

...

UserId assignmentGiver = searchTerms.getAssignmentGiver();
        if (assignmentGiver != null) {
            ec.andEquals("creationUserId", assignmentGiver);
        }

Date startDate = searchTerms.getStartDate();
        if (startDate != null) {
            ec.andGreaterOrEqualTo("creationDate", startDate);
        }

现在,creationUserId 搜索有效,但 EasyCriteria 声称超类没有 creationDate 属性,即使它有。 creationUserId 查询完美运行,它是来自完全相同超类的 属性。

我得到的异常是:

We could not find the parameter: creationDate in the given class: class ...[path]...Assignment

怎么了?我花了将近两天的时间来解决这个问题。

其他兴趣点:

那么为什么 andGreaterOrEqualTo 方法不能与超类中映射的日期 属性 一起使用?

好的,我将 EasyCriteria 3.0.0 更新为 UaiCriteria 4.0.0(出于法律原因更改名称)并解决了问题。 请记住,即使在从 pom.xml 中删除旧依赖项并在其中添加新依赖项后,也请确保您没有保留在 Maven 依赖项中的旧依赖项。

我正在使用 Eclipse m2 插件。我不得不通过在 Project Explorer 中右键单击旧的 .jar 来删除它:Maven -> Exclude Maven artifact。

之后,我还在每个使用 UaiCriteria 的 class 中自动添加了导入。