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: 243
        
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