我正在研究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
任何解决方案将不胜感激。感谢。
答案 0 :(得分:0)
我解决了这个问题。我为那些需要它的人发布了解决方案。
在oracle上,在我的案例中创建序列eg: BOOK_SEQ
。确保在oracle上,当你添加新记录时,id将自动增加。
然后在域类static mapping
引用,添加:
static mapping = {
id generator:'sequence', params:[sequence:'BOOKS_SEQ']
}
这就是全部。
如果回答不清楚,我随意回答。
感谢。