Я использую Spring Boot с базой данных MySQL. Когда я вставляю в базу данных сегодняшнюю дату, она делает это правильно. Сегодняшняя дата. Но когда я получаю его обратно, все записи - (минус) один день. Вот мой код.
Этот метод, который я использую для записи в таблицу «оплата»:
publi c User userPayed (int id) {User existingUser = repository.findById (id) .orElse (null);
Payment payment = new Payment();
Calendar calendar = Calendar.getInstance();
Date today = calendar.getTime();
payment.setDate(today);
payment.setUserId(id);
paymentRepository.save(payment);
existingUser.setPay(0.0);
return repository.save(existingUser);
}
Классы оплаты
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "payments")
public class Payment {
@Id
@GeneratedValue
private int id;
@Column(name = "user_id")
private int userId;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date date;
}
@Service
public class PaymentService {
@Autowired
private PaymentRepository repository;
public Payment addPayment (Payment payment){
return repository.save(payment);
}
public List<Payment> getPayments(){
return repository.findAll();
}
public Payment getPaymentById(int id){
return repository.findById(id).orElse(null);
}
public List<Payment> getByUserId(int userId){
return repository.findAllByUserId(userId);
}
public String deletePaymentById(int id){
repository.deleteById(id);
return "deleted payment: " + id;
}
public Payment updatePayment(Payment payment){
Payment existingPayment = repository.findById(payment.getId()).orElse(null);
existingPayment.setDate(payment.getDate());
existingPayment.setUserId(payment.getUserId());
return repository.save(existingPayment);
}
}
@CrossOrigin(origins = "http://localhost:3000")
@RestController
public class PaymentController {
@Autowired
private PaymentService service;
@PostMapping("/addPayment")
public Payment addPayment(@RequestBody Payment payment){
return service.addPayment(payment);
}
@GetMapping("/getPayments")
public List<Payment> getPayments(){
return service.getPayments();
}
@GetMapping("/payment/{id}")
public Payment getPaymentById(@PathVariable int id){
return service.getPaymentById(id);
}
@GetMapping("/payment/user/{id}")
public List<Payment> getByUserId(@PathVariable int id){
return service.getByUserId(id);
}
@PutMapping("/updatePayment")
public Payment updatePayment (@RequestBody Payment payment){
return service.updatePayment(payment);
}
@DeleteMapping("/deletePayment/{id}")
public String deletePaymentById (@PathVariable int id){
return service.deletePaymentById(id);
}
}