HHH-8643 test case
This commit is contained in:
parent
1c43f6f5d3
commit
4fad9a4a8f
|
@ -0,0 +1,114 @@
|
||||||
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* JBoss, Home of Professional Open Source
|
||||||
|
* Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors
|
||||||
|
* as indicated by the @authors tag. All rights reserved.
|
||||||
|
* See the copyright.txt in the distribution for a
|
||||||
|
* full listing of individual contributors.
|
||||||
|
*
|
||||||
|
* This copyrighted material is made available to anyone wishing to use,
|
||||||
|
* modify, copy, or redistribute it subject to the terms and conditions
|
||||||
|
* of the GNU Lesser General Public License, v. 2.1.
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT A
|
||||||
|
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License,
|
||||||
|
* v.2.1 along with this distribution; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301, USA.
|
||||||
|
*/
|
||||||
|
package org.hibernate.jpa.test.temporal;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.EntityManager;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Query;
|
||||||
|
import javax.persistence.Temporal;
|
||||||
|
import javax.persistence.TemporalType;
|
||||||
|
|
||||||
|
import org.hibernate.ejb.test.BaseEntityManagerFunctionalTestCase;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Brett Meyer
|
||||||
|
*/
|
||||||
|
public class TemporalTypeTest extends BaseEntityManagerFunctionalTestCase {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testTemporalType() {
|
||||||
|
EntityManager em = getOrCreateEntityManager();
|
||||||
|
em.getTransaction().begin();
|
||||||
|
|
||||||
|
Date date = new Date();
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
|
||||||
|
DataPoint dp = new DataPoint();
|
||||||
|
dp.date1 = date;
|
||||||
|
dp.date2 = date;
|
||||||
|
dp.calendar1 = calendar;
|
||||||
|
dp.calendar2 = calendar;
|
||||||
|
em.persist( dp );
|
||||||
|
|
||||||
|
em.getTransaction().commit();
|
||||||
|
em.close();
|
||||||
|
|
||||||
|
doTest("date1", date);
|
||||||
|
doTest("date1", calendar);
|
||||||
|
doTest("date2", date);
|
||||||
|
doTest("date2", calendar);
|
||||||
|
|
||||||
|
doTest("calendar1", date);
|
||||||
|
doTest("calendar1", calendar);
|
||||||
|
doTest("calendar2", date);
|
||||||
|
doTest("calendar2", calendar);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doTest(String property, Object obj) {
|
||||||
|
doTest( property, obj, TemporalType.DATE );
|
||||||
|
doTest( property, obj, TemporalType.TIMESTAMP );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doTest(String property, Object obj, TemporalType temporalType) {
|
||||||
|
EntityManager em = getOrCreateEntityManager();
|
||||||
|
em.getTransaction().begin();
|
||||||
|
|
||||||
|
Query query = em.createQuery("from DataPoint where " + property + " = :obj");
|
||||||
|
if (obj instanceof Calendar) {
|
||||||
|
query.setParameter("obj", (Calendar) obj, temporalType);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
query.setParameter("obj", (Date) obj, temporalType);
|
||||||
|
}
|
||||||
|
|
||||||
|
em.getTransaction().commit();
|
||||||
|
em.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Class<?>[] getAnnotatedClasses() {
|
||||||
|
return new Class<?>[] { DataPoint.class };
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity(name = "DataPoint")
|
||||||
|
private static class DataPoint {
|
||||||
|
@Id @GeneratedValue
|
||||||
|
public long id;
|
||||||
|
|
||||||
|
@Temporal( TemporalType.DATE )
|
||||||
|
public Date date1;
|
||||||
|
|
||||||
|
@Temporal( TemporalType.TIMESTAMP )
|
||||||
|
public Date date2;
|
||||||
|
|
||||||
|
@Temporal( TemporalType.DATE )
|
||||||
|
public Calendar calendar1;
|
||||||
|
|
||||||
|
@Temporal( TemporalType.TIMESTAMP )
|
||||||
|
public Calendar calendar2;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue