有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java spring引导rest api:显示信息错误

我已经用spring boot和Jersy编写了一个RESTAPI,我对请求有问题。 当我执行get请求时,它会向我显示100多次结果。 这是我的控制器课程

@RestController
public class UserController {
  @RequestMapping("/users")
public List<User> getAllUsers(){
    return new UserService().getAllUsers();
}
@RequestMapping("/users/{id}")
public User getUser(@RequestParam int id) {
    return new UserService().getUser(id);
}
}

这是我的服务课

@Service
public class UserService {
SessionFactory factory = new Configuration()
                             .configure("hibernate.cfg.xml")
                             .addAnnotatedClass(User.class)
                             .addAnnotatedClass(UserProfile.class)
                             .buildSessionFactory();

public UserService() {

}

public List<User> getAllUsers(){
        Session session = factory.getCurrentSession();
        session.beginTransaction();
        List<User> users = session.createQuery("from User").list();
        session.getTransaction().commit();
        session.close();
        return users;
}


public User getUser(int id) {
    Session session = factory.getCurrentSession();
    session.beginTransaction();
    User user = session.get(User.class, id);
    session.getTransaction().commit();
    session.close();
    return user;
}


}

这是结果显示

[{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":{"id":7,"name":"mohammad","email":"mohammadpakivand@gmail.com","userProfile":{"id":1,"lastName":"pakivand","number":"09362762537","user":

此用户类与UserProfile类具有一对一的关系


共 (1) 个答案

  1. # 1 楼答案

    首先。用户服务被注释为服务。这意味着在引导Spring期间创建了一个实例,并将这个UserService实例放入SpringContext中。你的Restcontoller也是SpringContext的一部分。然后,您可以将服务注入控制器

    @RestController
    public class UserController {
    
    // Here is where the injection takes place
    @Autowired
    private UserService userService;
    
      @RequestMapping("/users")
    public List<User> getAllUsers(){
        return userService.getAllUsers();
    }
    @RequestMapping("/users/{id}")
    public User getUser(@RequestParam int id) {
        return userService.getUser(id);
    }
    }
    

    其次。 为什么在只读操作期间使用并提交事务

    第三。你的用户类的代码是什么