【发布时间】:2015-12-08 14:46:27
【问题描述】:
我有一个 Spring MVC web-app,这个后端有所有 RESTful web-services,所以我们有一个 entity.jar、一个 dao.jar、services.jar 和 web-services.war。
在 DAO 层,我之前和老板讨论过,当我们保存或更新时,我们希望返回一个可管理的对象,并且可以对其进行延迟加载。
我们确实有一个 Postgres SQL 数据库,主键很长,并且由 Postgres 中的序列设置。
所以,我有以下两种方法:
@Override
public MyEntity create(MyEntity myObject)
{
this.sessionFactory.getCurrentSession().save(myObject);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().refresh(myObject);
return myObject;
}
@Override
public MyEntity update(MyEntity myObject)
{
this.sessionFactory.getCurrentSession().update(myObject);
this.sessionFactory.getCurrentSession().flush();
this.sessionFactory.getCurrentSession().refresh(myObject);
return myObject;
}
我的老板非常技术性,并且亲自研究了这些方法,看看它们都做了什么。他认为我们不需要冲洗和刷新。但是我所有的单元测试都表明这两种方法一直都很有效。
那么,请问您我使用这两种方法的方式有什么问题吗? 这些将从任何业务服务(services.jar)中调用。业务服务显然是事务和会话开始的地方。
谢谢!
【问题讨论】:
标签: hibernate postgresql spring-mvc