diff --git a/querydsl-core/src/main/java/com/mysema/query/grammar/Grammar.java b/querydsl-core/src/main/java/com/mysema/query/grammar/Grammar.java index b882f1de1..754c75a7c 100644 --- a/querydsl-core/src/main/java/com/mysema/query/grammar/Grammar.java +++ b/querydsl-core/src/main/java/com/mysema/query/grammar/Grammar.java @@ -96,11 +96,11 @@ public class Grammar { } public static Expr charAt(Expr left, Expr right) { - return createComparable(Ops.CHAR_AT, left, right); + return createComparable(Character.class, Ops.CHAR_AT, left, right); } public static Expr charAt(Expr left, int right) { - return createComparable(Ops.CHAR_AT, left, createConstant(right)); + return createComparable(Character.class, Ops.CHAR_AT, left, createConstant(right)); } public static EString concat(Expr left, Expr right) { diff --git a/querydsl-core/src/main/java/com/mysema/query/grammar/Ops.java b/querydsl-core/src/main/java/com/mysema/query/grammar/Ops.java index 5c84038f0..11633ba27 100644 --- a/querydsl-core/src/main/java/com/mysema/query/grammar/Ops.java +++ b/querydsl-core/src/main/java/com/mysema/query/grammar/Ops.java @@ -78,16 +78,29 @@ public interface Ops { Op ENDSWITH = new Op(); Op CONTAINS = new Op(); - - /** - * The Interface OpNumberAgg. - */ public interface OpNumberAgg{ Op AVG = new Op(); Op MAX = new Op(); Op MIN = new Op(); } + public interface OpDateTime{ + Op CURRENT_DATE = new Op(); + Op CURRENT_TIME = new Op(); + Op CURRENT_TIMESTAMP = new Op(); + Op DAY = new Op(); + Op HOUR = new Op(); + Op MINUTE = new Op(); + Op MONTH = new Op(); + Op SECOND = new Op(); + Op SYSDATE = new Op(); + Op YEAR = new Op(); + Op WEEK = new Op(); + Op DAY_OF_WEEK = new Op(); + Op DAY_OF_MONTH = new Op(); + Op DAY_OF_YEAR =new Op(); + } + public interface OpMath{ Op ABS = new Op(); Op ACOS = new Op(); @@ -107,7 +120,13 @@ public interface Ops { Op LOG10 = new Op(); Op LOG = new Op(); Op FLOOR = new Op(); - Op EXP = new Op(); - + Op EXP = new Op(); + } + + public interface OpString{ + Op LENGTH = new Op(); + Op LTRIM = new Op(); + Op RTRIM = new Op(); + Op SPACE = new Op(); } } diff --git a/querydsl-core/src/main/java/com/mysema/query/grammar/QDateTime.java b/querydsl-core/src/main/java/com/mysema/query/grammar/QDateTime.java new file mode 100644 index 000000000..c77aa62d8 --- /dev/null +++ b/querydsl-core/src/main/java/com/mysema/query/grammar/QDateTime.java @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2008 Mysema Ltd. + * All rights reserved. + * + */ +package com.mysema.query.grammar; + +import java.sql.Time; +import java.util.Date; + +import com.mysema.query.grammar.types.Expr; +import com.mysema.query.grammar.types.Factory; +import com.mysema.query.grammar.types.Expr.EComparable; +import com.mysema.query.grammar.types.Expr.ENumber; + +/** + * QDateTime provides + * + * @author tiwe + * @version $Id$ + */ +public class QDateTime extends Factory{ + + public static EComparable currentDate() { + return createComparable(Date.class, Ops.OpDateTime.CURRENT_DATE); + } + + public static EComparable currentTime() { + return createComparable(Date.class, Ops.OpDateTime.CURRENT_DATE); + + } + + public static ENumber dayOfMonth(Expr d) { + return createNumber(Integer.class, Ops.OpDateTime.DAY_OF_MONTH, d); + + } + + public static ENumber dayOfWeek(Expr d) { + return createNumber(Integer.class, Ops.OpDateTime.DAY_OF_WEEK, d); + + } + + public static ENumber dayOfYear(Expr d) { + return createNumber(Integer.class, Ops.OpDateTime.DAY_OF_YEAR, d); + + } + + public static ENumber hour(Expr