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.
}