【发布时间】:2011-05-12 13:47:49
【问题描述】:
我有两个域类:
class Domain1 {
String val11
String val12
Domain2 domain2
static constraints = {
}
}
class Domain1Controller{
/**
* Create new Domain1 entity instance
*/
def create = {
def domain1 = new Domain1()
def domain2 = Domain2.get(params.domain2)
if(domain2!=null){
domain1.domain2 = domain2
}
domain1.properties=params
domain1.save(flush: true)
String strJson = (domain1 as JSON)
render strJson
}
/**
* Update Domain1 entity fields values
*/
def update = {
Domain1 domain1 = Domain1.findById(params.id)
params.remove("id")
if (domain1 != null) {
domain1.properties=params
domain1.save(flush:true)
String strJson = (domain1 as JSON)
render strJson
}
}
}
class Domain2 {
String val21
String val22
static constraints = {
}
}
class Domain2Controller{
/**
* Create new Domain2 entity instance
*/
def create = {
def domain2 = new Domain2()
domain2.properties=params
domain2.save(flush:true)
String strJson = (domain2 as JSON)
render strJson
}
/**
* Update Domain2 entity fields values
*/
def update = {
Domain2 domain2 = Domain2.findById(params.id)
params.remove("id")
if (domain2 != null) {
domain2.properties=params
domain2.save(flush: true)
String strJson = (domain2 as JSON)
render strJson
}
}
}
我的问题是当我创建关联对象时,我无法更新 domain1。
我认为原因可能在save() 方法中......也许不是
有谁知道我为什么不能更新 Domain1 属性?
我使用 grails-1.3.2 和 hbase-0.2.4 插件。
附: hbase 不理解映射..
感谢您的帮助。
【问题讨论】:
-
用
save(flush: true, failOnError: true)替换save(flush: true)然后发布抛出的异常(如果有的话) -
@Don 我已经用 save(flush: true, failOnError: true) 替换了 save(flush: true) ...它没有抛出任何异常,也没有更新 domain1 对象..跨度>
-
我试图用 save(flush: true, failOnError: true, deepValidate: false) 替换 save(flush:true) 并得到 NullPointerException 异常:错误 gorm.SavePersistentMethod - 无法获取属性“类”在空对象 java.lang.NullPointerException:无法在 org.codehaus.groovy.runtime.InvokerHelper.getProperty( InvokerHelper.java:156) 在 org.codehaus.groovy.runtime.callsite.PojoMetaClassGetPropertySite.ca //--
标签: grails groovy associations hbase