Date の BETWEEN 句で CriteriaQuery を使用するにはどうすればよいですか? これを試してみましたが成功しませんでした。
DAO メソッド:
public List<Registry> listRegistry(Date init){
List<Registry> registrys = null;
try{
Date currentDate = new Date();
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Registry> c = cb.createQuery(Registry.class);
Root<Registry> registry= c.from(Registry.class);
// get error here; "The method get(String) in the type Path<Registry> is not applicable for the arguments (String, Date, Date)"
c.select(registry).where(cb.between(registry.get("dateEntry", init, currentDate)));
registrys = getEm().createQuery(c).getResultList();
}
catch (NoResultException x) {
//does nothing
}
return registrys;
}
およびエンティティ クラス レジストリ:
@Entity
public class Registry {
@GenericGenerator(name="gen",strategy="increment")
@GeneratedValue(generator="gen")
@Column(name = "id", unique = true, nullable = false, precision = 15, scale = 0)
@Id
private int id;
private Date dateEntry;
// getters and setters .....
}
これらのエラー: 「型 Path のメソッド get(String) は、引数 (String、Date、Date) には適用できません」 ; どうすればこれを解決できますか?