From d8337bfc26a08a9d84d7cbdb2451a5abcc8cf32b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Tue, 24 Jun 2014 23:19:45 +0300 Subject: [PATCH] Improve EclipseLink mappings --- .../com/mysema/query/jpa/EclipseLinkTemplates.java | 8 +++++++- .../test/java/com/mysema/query/AbstractJPATest.java | 13 +++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/querydsl-jpa/src/main/java/com/mysema/query/jpa/EclipseLinkTemplates.java b/querydsl-jpa/src/main/java/com/mysema/query/jpa/EclipseLinkTemplates.java index e1131e1ff..456490d4e 100644 --- a/querydsl-jpa/src/main/java/com/mysema/query/jpa/EclipseLinkTemplates.java +++ b/querydsl-jpa/src/main/java/com/mysema/query/jpa/EclipseLinkTemplates.java @@ -70,13 +70,19 @@ public class EclipseLinkTemplates extends JPQLTemplates { add(Ops.NUMCAST, "cast({0} {1s})"); // datetime - add(Ops.DateTimeOps.MILLISECOND, "extract(microsecond from {0})"); + add(Ops.DateTimeOps.MILLISECOND, "extract(millisecond from {0})"); add(Ops.DateTimeOps.SECOND, "extract(second from {0})"); add(Ops.DateTimeOps.MINUTE, "extract(minute from {0})"); add(Ops.DateTimeOps.HOUR, "extract(hour from {0})"); + add(Ops.DateTimeOps.DAY_OF_WEEK, "extract(day_of_week from {0})"); add(Ops.DateTimeOps.DAY_OF_MONTH, "extract(day from {0})"); + add(Ops.DateTimeOps.DAY_OF_YEAR, "extract(day_of_year from {0})"); + add(Ops.DateTimeOps.WEEK, "extract(week from {0})"); add(Ops.DateTimeOps.MONTH, "extract(month from {0})"); add(Ops.DateTimeOps.YEAR, "extract(year from {0})"); + + add(Ops.DateTimeOps.YEAR_MONTH, "extract(year from {0}) * 100 + extract(month from {0})"); + } @Override diff --git a/querydsl-jpa/src/test/java/com/mysema/query/AbstractJPATest.java b/querydsl-jpa/src/test/java/com/mysema/query/AbstractJPATest.java index 773c31904..c52b93a34 100644 --- a/querydsl-jpa/src/test/java/com/mysema/query/AbstractJPATest.java +++ b/querydsl-jpa/src/test/java/com/mysema/query/AbstractJPATest.java @@ -479,6 +479,18 @@ public abstract class AbstractJPATest { assertEquals(1, query().from(cat).distinct().list(cat.birthdate).size()); } + @Test + public void Date() { + query().from(cat).list(cat.birthdate.year()); + query().from(cat).list(cat.birthdate.yearMonth()); + query().from(cat).list(cat.birthdate.month()); + query().from(cat).list(cat.birthdate.week()); + query().from(cat).list(cat.birthdate.dayOfMonth()); + query().from(cat).list(cat.birthdate.hour()); + query().from(cat).list(cat.birthdate.minute()); + query().from(cat).list(cat.birthdate.second()); + } + @Test @ExcludeIn(ORACLE) public void Divide() { @@ -1469,3 +1481,4 @@ public abstract class AbstractJPATest { .list(animal.id)); } } +