how to find by date from timestamp column in JPA criteria
Posted
by
Kre Toni
on Stack Overflow
See other posts from Stack Overflow
or by Kre Toni
Published on 2012-12-05T04:57:43Z
Indexed on
2012/12/06
5:05 UTC
Read the original article
Hit count: 167
jpa-2.0
|criteria-api
I want to find a record by date. In entity and database table datatype is timestamp. I used Oracle database.
@Entity
public class Request implements Serializable {
@Id
private String id;
@Version
private long version;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CREATION_DATE")
private Date creationDate;
public Request() {
}
public Request(String id, Date creationDate) {
setId(id);
setCreationDate(creationDate);
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public long getVersion() {
return version;
}
public void setVersion(long version) {
this.version = version;
}
public Date getCreationDate() {
return creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
}
in mian method
public static void main(String[] args) {
RequestTestCase requestTestCase = new RequestTestCase();
EntityManager em = Persistence.createEntityManagerFactory("Criteria").createEntityManager();
em.getTransaction().begin();
em.persist(new Request("005",new Date()));
em.getTransaction().commit();
Query q = em.createQuery("SELECT r FROM Request r WHERE r.creationDate = :creationDate",Request.class);
q.setParameter("creationDate",new GregorianCalendar(2012,12,5).getTime());
Request r = (Request)q.getSingleResult();
System.out.println(r.getCreationDate());
}
in oracle database record is
ID CREATION_DATE VERSION
006 05-DEC-12 05.34.39.200000 PM 1
Exception is
Exception in thread "main" javax.persistence.NoResultException: getSingleResult() did not retrieve any entities.
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.throwNoResultException(EJBQueryImpl.java:1246)
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getSingleResult(EJBQueryImpl.java:750)
at com.ktrsn.RequestTestCase.main(RequestTestCase.java:29)
© Stack Overflow or respective owner