GORM实例在更新问题上自动持久保存到数据库

时间:2015-11-24 15:01:04

标签: grails gorm

我在控制器中进行了自定义验证,因为我需要使用数据库进行验证。

    public void SendData(List<SomeClass> ajaxData)
    {
        var data = ajaxData;
    }

    public class SomeClass
    {
        public int Id { get; set; }
        public int RoleId { get; set; }
        public bool R { get; set; }
        public bool W { get; set; }
        public bool E { get; set; }
        public bool D { get; set; }
    }

在上面的代码中,即使def update(Object instance) { if (instance == null) { notFound() return } if (instance.hasErrors()) { //redirect code here return } def obj = objService.someMethod() //some validation code here if(someCheck){ // if i discard it wont work instance.discard() flash.error = message(code: 'message.code') //render code here return } 在执行数据库访问后也不起作用。即使没有保存方法调用,也会自动保存更改的数据。如果没有执行数据库访问,则相同的instance.discard()将起作用。如果验证失败,如何丢弃要保留到数据库的更改值。

1 个答案:

答案 0 :(得分:0)

@Transactional(readonly = true)操作上方添加注释update。这应该够了吧。

这是Grails的内置功能,可以自动将实例持久保存到数据库中。

请在此处阅读我的回答以获取更多详细信息 https://stackoverflow.com/a/32659803/2405040