2012-09-11 46 views
2

我学习使用版本1.3.7 Grails和我一直运行到下面的语法错误没有明显的原因:意外的标记:测绘

unexpected token: mapping @ line x, column y. 

一旦被运行,我摆脱它“常规清洁”和“grails干净”,但这次它甚至没有工作。据我所知,我的代码与我正在使用的书中的例子完全相同,但它一直抱怨“映射”这个词。

这是我的一个类,其中失败的例子:

package com.grailsinaction 

class Post { 

    String content 
    Date dateCreated 

    static constraints = { 
     content(blank: false) 
    } 

    static belongsTo = [ user: User ] 

    static mapping { 
     sort dateCreated: "desc" 
    } 

    static hasMany = [ tags: Tag ] 
} 

我缺少什么?请指教。

回答

3

你错过了一个等号...的mapping line应阅读:

static mapping = { 
    sort dateCreated: "desc" 
} 
+0

就是这样,谢谢!我在一分钟前才发现。天哪,我觉得自己像个白痴。 Grails的语法对我来说很奇怪。 – Stephan

+1

@Stephan不用担心。这条groovy基本上将'static'映射变量设置为Groovy Closure(一种匿名方法)。当执行时,这会调用'sort'方法传递一个地图'[dateCreated:'desc']''。只是让你知道发生了什么事情:-)不断堵塞!像任何语言一样,它最终会坚持:-) –

+0

谢谢你解释。从Java/C#开始看,它并不是那么明显。 – Stephan