Grails 1.1 动态查询器 - 方法表达式

在GORM中一个方法表达式由前缀,比如 findBy 后面跟一个表达式组成,这个表达式由一个或多个属性组成。

基本形式是:Book.findBy([Property][Comparator][Boolean Operator])?[Property][Comparator]用’?’ 标记的部分是可选的. 每个后缀都会改变查询的性质。

例如:def book = Book.findByTitle("The Stand") book = Book.findByTitleLike("Harry Pot%")在上面的例子中,第一个查询等价于等于后面的值, 第二个因为增加了 Like 后缀, 它等价于SQL 的 like 表达式.

可用的后缀包括:

• InList - list中给定的值

• LessThan - 小于给定值

• LessThanEquals - 小于或等于给定值

• GreaterThan - 大于给定值

• GreaterThanEquals - 大于或等于给定值

• Like - 价于 SQL like 表达式

• Ilike - 类似于Like,但不是大小写敏感

• NotEqual - 不等于

• Between - 于两个值之间 (需要两个参数)

• IsNotNull - 不为null的值 (不需要参数)

• IsNull - 为null的值 (不需要参数)

你会发现最后三个方法标注了参数的个数,他们的示例如下:def now = new Date() def lastWeek = now - 7 def book = Book.findByReleaseDateBetween( lastWeek, now ) books = Book.findAllByReleaseDateIsNull() books = Book.findAllByReleaseDateIsNotNull()