编辑现有对象应该在存储库层还是在服务中完成?

时间:2013-11-09 18:22:55

标签: java spring hibernate

例如,如果我有一个有债务的用户。我想改变他的债务。我应该通过获取对象,编辑并保存它来在UserRepository或服务中(例如BuyingService)执行此操作吗?

1 个答案:

答案 0 :(得分:6)

您应该负责将对象变更为同一个对象,并使用存储库来检索此对象。

示例情况:

class User {
 private int debt; // debt in cents
 private string name;

 // getters

 public void makePayment(int cents){
  debt -= cents;
 }
}

class UserRepository {
 public User GetUserByName(string name){
  // Get appropriate user from database
 }
}

用法(杰克支付10欧元):

userRepository.GetUserByName("Jack").makePayment(1000);

请记住,这只是一个示例方法。编程中没有一套方法可以实现某些目标,你完全可以做到这一点完全不同。