如何使用Grails服务在数据库中保存记录

时间:2014-06-27 11:21:28

标签: grails

我有一个名为Classified的域名类。此类与Media类具有关系(hasMany):

class Classified{
static hasMany = [ adResponses: AdResponse,mediafiles:Media ] 
}

class Media{
     byte[] mediafile
}

当我从Classified Controller中保存Classified对象时,我可以使用下面的代码保存Parent和Child对象:

def save(){
   def med = new Media(mediafile: params.mediafile, contentType:uploadedFile?.contentType)
   classifiedInstance.addToMediafiles(med)
   classifiedInstance.save flush:true
}

以下是我保存数据的ClassifiedService。

    @Transactional
    class ClassifiedService {


        def addAd(Classified classifiedInstance)
   {

    classifiedInstance.save flush:true
   }
 }

在上面的“addAd”方法中,我传递了Classified实例的对象。

保存ClassifiedController的方法:

def save(){
   def med = new Media(mediafile: params.mediafile,  contentType:uploadedFile?.contentType)
   classifiedInstance.addToMediafiles(med)
   classifiedService.addAd(classifiedInstance)
}

当我尝试保存时没有任何事情发生。在控制台上我没有看到任何错误。

请告诉我为什么我无法保存数据。

2 个答案:

答案 0 :(得分:0)

请确保以下内容:

  1. 您已在服务定义

  2. 之上导入域类
  3. 将此保存方法更改为failOn save以查看更多错误

    def med = new Media(mediafile:params.mediafile,contentType:uploadedFile?.contentType)    classifiedInstance.addToMediafiles(MED)    classifiedInstance.save(冲洗:真,failOnError:真)

  4. 请有时重启STS可能有所帮助,因为你没有看到任何错误,所以如果没有错误关闭并重新打开,请清理它并使刷新依赖。

答案 1 :(得分:0)

我跟着约书亚。重新启动了我的机器,启动了GGTS并使其工作得很好。