session.save不返回持久化对象,只返回标识符

时间:2012-07-25 16:36:21

标签: java hibernate

我想这样做:

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
    public MyObject create(ObjectBasicDTO dto) {
    MyObject myObject = new MyObject (dto);
    return sessionFactory.getCurrentSession().save(object);
    }

但我必须这样做:

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
    public MyObject create(ObjectBasicDTO dto) {
    MyObject myObject = new MyObject (dto);
    Long id = sessionFactory.getCurrentSession().save(object);
    return sessionFactory.getCurrentSession().get(MyObject.class, id);
    }

是吗?多数民众赞成似乎很蹩脚。

1 个答案:

答案 0 :(得分:3)

您可以改为return myObject。 Hibernate将标识符与作为参数给出的对象关联到save