Grails oracle数据库无法添加新的

时间:2015-07-29 10:24:00

标签: grails groovy oracle11g

我正在研究grails 2.4.5。 我将我的项目连接到oracle 11g。 在数据源中,我添加:

dataSource {
            pooled = true
            dialect = org.hibernate.dialect.Oracle10gDialect
            driverClassName = 'oracle.jdbc.OracleDriver'
            username = 'grails'   // YOUR USERNAME AND PASS
            password = 'grails'
            url = 'jdbc:oracle:thin:localhost:1521:orcl'
            dbCreate = 'update'
        }

然后它连接,当我创建新域时,db中的新表创建。 但是,当我添加新的:

new Book(name:'The Strain').save(flush:true)

然后出现错误:

2015-07-29 17:10:30,036 [Thread-10] ERROR plugins.AbstractGrailsPluginManager  - Plugin [controllers:2.4.5] could not reload changes to file [C:\Users\Thuc Tran\IdeaProjects\EmailTutorial\grails-app\controllers\emailtutorial\PlaceController.groovy]: Cannot invoke method getPropertyValue() on null object
Message: Cannot invoke method getPropertyValue() on null object
   Line | Method
->> 120 | configureScaffoldingController in ScaffoldingGrailsPlugin
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
^   105 | doCall                         in ScaffoldingGrailsPlugin$_closure3

任何解决方案将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。我为那些需要它的人发布了解决方案。 在oracle上,在我的案例中创建序列eg: BOOK_SEQ。确保在oracle上,当你添加新记录时,id将自动增加。 然后在域类static mapping引用,添加:

static mapping = {
        id generator:'sequence', params:[sequence:'BOOKS_SEQ']
}

这就是全部。

如果回答不清楚,我随意回答。

感谢。