Tra*_*ace 7 java dao design-patterns repository-pattern
虽然可能是一个微不足道的问题,但我总是对此感到疑惑.
通常,在插入db之后,通常的做法是返回业务实体的id.
@Override
public Long createUser(UserEntity user) {
em.merge(user);
em.flush();
return user.getId();
}
Run Code Online (Sandbox Code Playgroud)
是否有令人信服的理由返回id而不是业务对象引用本身?
同样,我已经看到了update返回void,而它可能也是一个id/User.
如果我要为其他人编写一个DAO/Repository来使用,那么建议的返回值是什么(如果有的话),为什么?
如果已成功创建/更新,为什么不返回整个实例?与 Spring Data 所做的相同,
<S extends T> S save(S entity);
<S extends T> Iterable<S> save(Iterable<S> entities);
Run Code Online (Sandbox Code Playgroud)
如果我需要创建/更新对象的另一部分,除了id? ( name,date对于User实体)。
id如果有几个字段完全表征实例(复合主键),为什么会返回?
返回整个对象没有困难(正如@Danny Fonk 所提到的,这里没有什么是“开销”),但是将来可能会节省很多时间。
| 归档时间: |
|
| 查看次数: |
2442 次 |
| 最近记录: |