spring boot rest api : 显示信息错误
spring boot rest api : wrong with showing information
我已经使用 spring boot 和 Jersy 写了一个 rest API,我的请求有问题。
当我执行获取请求时,它会向我显示一百多次结果。
这是我的控制器 class
@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);
}
}
这是我的服务class
@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":
此用户 class 与 UserProfile class
具有一对一关系
首先。您的 UserService 被注释为服务。这意味着在引导 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);
}
}
其次。
为什么在只读操作期间使用并提交事务。
第三。您的用户 class 的代码是什么?
我已经使用 spring boot 和 Jersy 写了一个 rest API,我的请求有问题。 当我执行获取请求时,它会向我显示一百多次结果。 这是我的控制器 class
@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);
}
}
这是我的服务class
@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":
此用户 class 与 UserProfile class
具有一对一关系首先。您的 UserService 被注释为服务。这意味着在引导 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);
}
}
其次。 为什么在只读操作期间使用并提交事务。
第三。您的用户 class 的代码是什么?