在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()