Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot api调用中的Springboot返回对象,get方法失败,原因是日期和时间?_Spring Boot_Api_Postman - Fatal编程技术网

Spring boot api调用中的Springboot返回对象,get方法失败,原因是日期和时间?

Spring boot api调用中的Springboot返回对象,get方法失败,原因是日期和时间?,spring-boot,api,postman,Spring Boot,Api,Postman,你好,我正在创建一个请假应用程序,用户可以在其中申请请假。每个假期都可以链接到一个用户 我现在面临两个问题 首先,我如何通过调用/leavesapi返回我的User对象?我想检索要显示在我的前端上的用户对象详细信息(例如,用户名、电子邮件、电话号码) 其次,my/leaves api返回了一个错误——这与我如何在类中声明日期和时间有关吗 Leave.java package com.example.hms.springboothms.model; import lombok.AllArgsCo

你好,我正在创建一个请假应用程序,用户可以在其中申请请假。每个假期都可以链接到一个用户

我现在面临两个问题

首先,我如何通过调用/leavesapi返回我的
User
对象?我想检索要显示在我的前端上的用户对象详细信息(例如,用户名、电子邮件、电话号码)

其次,my/leaves api返回了一个错误——这与我如何在类中声明日期和时间有关吗

Leave.java

package com.example.hms.springboothms.model;

import lombok.AllArgsConstructor;

import lombok.NoArgsConstructor;

import java.sql.Date;
import java.sql.Time;

import javax.persistence.*;

@NoArgsConstructor
@AllArgsConstructor
@Table(name = "leave")
@Entity
public class Leave {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    @OneToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.EAGER)
    @JoinColumn(name = "user_id")
    private User user;

    @Column(name = "start_date")
    private Date startDate;

    @Column(name = "end_date")
    private Date endDate;

    @Column(name = "start_time")
    private Time startTime;

    @Column(name = "end_time")
    private Time endTime;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Time getStartTime() {
        return startTime;
    }

    public void setStartTime(Time startTime) {
        this.startTime = startTime;
    }

    public Time getEndTime() {
        return endTime;
    }

    public void setEndTime(Time endTime) {
        this.endTime = endTime;
    }
}
package com.example.hms.springboothms.controller;

import com.example.hms.springboothms.ResourceNotFoundException;
import com.example.hms.springboothms.model.Leave;
import com.example.hms.springboothms.repository.LeaveRepository;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@CrossOrigin(origins = "*")
@RestController
@RequestMapping("/api")
public class LeaveController {
    @Autowired
    private LeaveRepository leaveRepository;

    @PostMapping("/leaves")
    public Leave addLeave(@RequestBody Leave leave) {
        return leaveRepository.save(leave);
    }
离开.sql

CREATE TABLE IF NOT EXISTS `leave` (
  `leave_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(10) NOT NULL,
  `start_date` date NOT NULL,
  `end_date` date NOT NULL,
  `start_time` time NOT NULL,
  `end_time` time NOT NULL,
  PRIMARY KEY (`leave_id`),
  FOREIGN KEY (`user_id`) REFERENCES `leave`(`leave_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=100;
LeaveController.java

package com.example.hms.springboothms.model;

import lombok.AllArgsConstructor;

import lombok.NoArgsConstructor;

import java.sql.Date;
import java.sql.Time;

import javax.persistence.*;

@NoArgsConstructor
@AllArgsConstructor
@Table(name = "leave")
@Entity
public class Leave {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    @OneToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.EAGER)
    @JoinColumn(name = "user_id")
    private User user;

    @Column(name = "start_date")
    private Date startDate;

    @Column(name = "end_date")
    private Date endDate;

    @Column(name = "start_time")
    private Time startTime;

    @Column(name = "end_time")
    private Time endTime;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Time getStartTime() {
        return startTime;
    }

    public void setStartTime(Time startTime) {
        this.startTime = startTime;
    }

    public Time getEndTime() {
        return endTime;
    }

    public void setEndTime(Time endTime) {
        this.endTime = endTime;
    }
}
package com.example.hms.springboothms.controller;

import com.example.hms.springboothms.ResourceNotFoundException;
import com.example.hms.springboothms.model.Leave;
import com.example.hms.springboothms.repository.LeaveRepository;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@CrossOrigin(origins = "*")
@RestController
@RequestMapping("/api")
public class LeaveController {
    @Autowired
    private LeaveRepository leaveRepository;

    @PostMapping("/leaves")
    public Leave addLeave(@RequestBody Leave leave) {
        return leaveRepository.save(leave);
    }
我在《邮差》中面临的错误是:

  • 您应该在Leave中使用java.util.Date

     private java.util.Date creationDate;
    
  • 您需要用日期注释每个类型的字段

     @Temporal(TemporalType.DATE)
     private java.util.Date creationDate;
    
  • 要返回用户,您可以返回包含用户的休假,也可以返回 添加新端点/leaves/user/。在这两种情况下,您都应该使用@GetMapping而不是@PostMapping

     @GetMapping("/leaves/{id}")
     public Leave getLeave(@RequestParam(name = "id") String id) {
    
         return leaveRepository.getById(id);
     }