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
怎么了?我花了将近两天的时间来解决这个问题。
其他兴趣点:
- ec.andGreaterOrEqualTo...如果我选择另一个,比较有效
来自子类本身的日期属性。
- 如果我将方法更改为 "ec.andEquals(...",它会找到该字段
来自超类的 creationDate。
那么为什么 andGreaterOrEqualTo 方法不能与超类中映射的日期 属性 一起使用?
好的,我将 EasyCriteria 3.0.0 更新为 UaiCriteria 4.0.0(出于法律原因更改名称)并解决了问题。
请记住,即使在从 pom.xml 中删除旧依赖项并在其中添加新依赖项后,也请确保您没有保留在 Maven 依赖项中的旧依赖项。
我正在使用 Eclipse m2 插件。我不得不通过在 Project Explorer 中右键单击旧的 .jar 来删除它:Maven -> Exclude Maven artifact。
之后,我还在每个使用 UaiCriteria 的 class 中自动添加了导入。
所以,我正在做一个 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
怎么了?我花了将近两天的时间来解决这个问题。
其他兴趣点:
- ec.andGreaterOrEqualTo...如果我选择另一个,比较有效 来自子类本身的日期属性。
- 如果我将方法更改为 "ec.andEquals(...",它会找到该字段 来自超类的 creationDate。
那么为什么 andGreaterOrEqualTo 方法不能与超类中映射的日期 属性 一起使用?
好的,我将 EasyCriteria 3.0.0 更新为 UaiCriteria 4.0.0(出于法律原因更改名称)并解决了问题。 请记住,即使在从 pom.xml 中删除旧依赖项并在其中添加新依赖项后,也请确保您没有保留在 Maven 依赖项中的旧依赖项。
我正在使用 Eclipse m2 插件。我不得不通过在 Project Explorer 中右键单击旧的 .jar 来删除它:Maven -> Exclude Maven artifact。
之后,我还在每个使用 UaiCriteria 的 class 中自动添加了导入。