更新单向一对一问题
我有两个域类:
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 插件。
PS hbase 不理解映射..
感谢您的帮助。
I have two domain classes:
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
}
}
}
My problem is when I create associated objects,I cannot update domain1.
I think reason maybe in save()
method... maybe not
Is there anyone who know why I cannot update Domain1 properties ?
I use grails-1.3.2 and hbase-0.2.4 plugin.
P.S. hbase does not understand mapping..
Thanks for help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
鉴于您在评论中提供的异常,我认为问题出在您调用
domain1.properties=params
的行。域属性映射包含一些特定的键,当您将params
映射分配给它时,那些特定的(即此处的class
属性)会丢失,因此 GORM 无法访问它们。使用bind()方法将参数值绑定到您的域对象,如下所示:
Given the exception you provided in the comment, I think the problem is the line where You call
domain1.properties=params
. Domain properties map contain some specific keys, and when you assignparams
map to it, those specific (ie.class
property here) are missing, so GORM cant access them.Use bind() method to bind parameter values to your domain object this way: