【问题标题】:Adding two numbers from the database in the Spring Service layer在 Spring Service 层从数据库中添加两个数字
【发布时间】:2017-09-30 22:11:34
【问题描述】:

我有一个名为 User 的实体,它包含三个字段:

身份证号1

1 5

2 4

然后我有一个扩展 JpaRepository 的 UserRepository,因此包括 crud 操作。 我希望能够取值 5 和 4 并将它们加在一起。 这个逻辑应该应用在服务层。 所以我有一个AddService 接口和实现该接口的AddServiceImpl。

public interface AddService{
    public void addNumbers(user1, user2);
}

public class AddServiceImpl implements AddService{
     public void addNumbers(user1, user2){
            List<User> user1=userRepository.findOne(1);
            List<User> user2=userRepository.findOne(2);
     // how do I take those specific values that are on the field No?
 }
}

如何实现此服务以添加这些数字? 我需要注入存储库并使用来自 user1 和 user2 的数据保存一个列表,然后添加它们?但是我该怎么做呢?

【问题讨论】:

    标签: java spring


    【解决方案1】:

    试试这个代码,让我知道这是你想要的

    public Integer addNumbers(user1, user2){
        List<User> user1=userRepository.findOne(1);
        List<User> user2=userRepository.findOne(2);
        Integer number1 = user1.getNo();
        Integer number2 = user2.getNo();
        return number1 + number2;
    }
    

    如果 user1.getNo() 或 user2.getNo() 可能为空,请也接受这个。在这种情况下,我不知道您要返回什么。

    另外,改变接口返回一个Integer

    public interface AddService{
        public Integer addNumbers(user1, user2);
    }
    

    【讨论】:

      【解决方案2】:

      为什么需要 User 类型的列表?无论如何,您应该做的是遍历列表,并为列表中的每个用户对象使用该字段的 getter 获取数字。您必须拥有实体类上所有字段的 getter 和 setter,这样您就可以在存储库类上获取实例变量的值。

      【讨论】:

        【解决方案3】:

        user1.getID() 和 user1.getNo() 没有用户类很难分辨。用户2也是如此。可以为我们提供用户吗?

        findOne 的返回类型不应包含列表。它应该是唯一的。

        对存储库的调用不应在您的 addNumbers 方法中,因为您的用户在方法参数中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多