对象自动在数据库中更新

优素福

我正在使用Spring data jpaspring mvc而且我注意到我的对象contact会自动在数据库中更新。

这是我的代码:

@Transactional
@Controller
public class ContactController {
    @RequestMapping(value="/update_contact ") 
    public @ResponseBody
    String update_contact (...) {
        ...
        Contact contact = contactrespository.findOne(idcontact);

        contact.setName(...);
        ...

    }
}

而且,当我检查数据库时,未执行contactrespository.save(idcontact);我的contact更改!
你能解释一下为什么吗?

拉菲克·贝尔迪

对象有多种状态

  • 持久性:持久性实例在数据库中具有表示形式和标识符值,并且与Hibernate Session关联。
  • 分离的:分离的实例是已持久的对象,但其会话已关闭。
  • 瞬态:如果对象只是使用new运算符实例化的,则该对象是瞬态的,并且它与Hibernate Session无关。

在这种情况下,更改将提交给联系,因为它是在事务内修改的持久对象,因为您的控制器带有注释,@Transactional因此它与休眠会话相关联。

ControllerTransactional注解注释不是一个好习惯,最好在服务层中使用,我们repository在控制器层调用not

    @Controller
    public class MyController{

        @Autowired
        private MyService service;

        @RequestMapping ....
        public Contact findContact(String name, ....){
        Contact contact =  service.get(...);
         // other logic 
         }
     }




    @Service
    public class MyService{

        @Autowired
        private MyRepository repository;

        @Transactional(propagation=Propagation.SUPPORTS)
        public Contact get(long id){
         // better throw a notFuondException in here 
        return repository.findOne(id);
        }
    //same for other method like create and update with @Transactional REQUIRED NEW  or      REQUIRED propagation
   }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

对象自动在数据库中更新

来自分类Dev

Codeigniter更新记录-无法在数据库中更新

来自分类Dev

在数据库中自动执行操作

来自分类Dev

数据不会在数据库中更新

来自分类Dev

更新存储在数据库中的JSON数据

来自分类Dev

无法更新数据库中的对象

来自分类Dev

数据库中的Django更新对象

来自分类Dev

数据库中的Django更新对象

来自分类Dev

将指向对象的指针存储在数据库中

来自分类Dev

在数据库中存储Formgroup对象

来自分类Dev

在数据库中存储对象的顺序

来自分类Dev

如何在数据库中插入Json对象

来自分类Dev

如何在数据库中存储递归对象?

来自分类Dev

在数据库中更新/添加事实的最佳方法?

来自分类Dev

记录未在数据库中更新

来自分类Dev

行不会在数据库中更新

来自分类Dev

在数据库中更新/添加事实的最佳方法?

来自分类Dev

输入字段未在数据库中更新

来自分类Dev

PHP 图像未在数据库中更新

来自分类Dev

数据库设计 - 在数据库中存储 n 周数据并每周更新

来自分类Dev

在数据库更新时使用Spring和Hibernate更新单例对象

来自分类Dev

如何自动更新数据库中的列

来自分类Dev

自动更新 SQL Server 数据库中的列

来自分类Dev

反复更新对象列表中数据库中的记录

来自分类Dev

反复更新对象列表中数据库中的记录

来自分类Dev

Slick可以从模型中自动在数据库中创建表(生成SQL并执行)吗?

来自分类Dev

如何使用Django中存储在数据库中的值自动填充表单模板?

来自分类Dev

如何在数据库更新后有效地从数据库中获取数据?

来自分类Dev

在Django上更新数据库中的模型对象