如何从我的代码程序修复此错误

时间:2019-07-15 05:07:28

标签: java spring-mvc

如何使用Java Spring MVC修复此程序?我想在数据库中输入包含日期的数据,但是显示错误。我该如何解决?

这是我在实体

中的代码
@Entity
@Table(name ="tb_transaksi_penjualan")
public class TransaksiPenjualan {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String customer;
@DateTimeFormat(pattern ="MM/dd/yyyy")
private Date tanggal;
private String barang;
private int jumlah;
private int harga;
private int total;
private Long customer_id;
private Long barang_id;
public Long getId() {
    return id;
}
public void setId(Long id) {
    this.id = id;
}
public String getCustomer() {
    return customer;
}
public void setCustomer(String customer) {
    this.customer = customer;
}
public Date getTanggal() {
    return tanggal;
}
public void setTanggal(Date tanggal) {
    this.tanggal = tanggal;
}
public String getBarang() {
    return barang;
}
public void setBarang(String barang) {
    this.barang = barang;
}
public int getJumlah() {
    return jumlah;
}
public void setJumlah(int jumlah) {
    this.jumlah = jumlah;
}
public int getHarga() {
    return harga;
}
public void setHarga(int harga) {
    this.harga = harga;
}
public int getTotal() {
    return total;
}
public void setTotal(int total) {
    this.total = total;
}
public Long getCustomer_id() {
    return customer_id;
}
public void setCustomer_id(Long customer_id) {
    this.customer_id = customer_id;
}
public Long getBarang_id() {
    return barang_id;
}
public void setBarang_id(Long barang_id) {
    this.barang_id = barang_id;
}



}

这是我来自 controller

的代码
@Controller
@RequestMapping("/transaksipembelian/save")
public class TransaksiPembelianSaveController {


@Autowired
private TransaksiPembelianRepository transaksiPembelianRepository;

@ModelAttribute("transaksipembelian")
private TransaksiPembelian getTransaksiPembelian(@RequestParam(value="id", required = false) Long id)
{
    if(id==null)
        return new TransaksiPembelian();
    else
        return transaksiPembelianRepository.findById(id).orElse(null);
}

@RequestMapping(method = RequestMethod.GET)
public String form() {
    return "tambahtransaksipembelian";
}

@RequestMapping(method = RequestMethod.POST)
public String submit(@ModelAttribute("transaksipembelian") TransaksiPembelian transaksipembelian ) {

    System.out.println(transaksipembelian.toString());
    transaksiPembelianRepository.save(transaksipembelian);

    return "redirect:/transaksipembelian";
}

}

这是来自错误的消息:

  

字段“ tanggal”上的对象“ transaksipenjualan”中的字段错误:   拒绝价值[2019-07-15];码   [typeMismatch.transaksipenjualan.tanggal,typeMismatch.tanggal,typeMismatch.java.util.Date,typeMismatch];   论点   [org.springframework.context.support.DefaultMessageSourceResolvable:   代码[transaksipenjualan.tanggal,tanggal];参数[];默认   消息[tanggal]];默认消息[无法转换属性值   类型“ java.lang.String”的必需类型为“ java.util.Date”   财产'tanggal';嵌套异常为   org.springframework.core.convert.ConversionFailedException:失败   从类型[java.lang.String]转换为类型   [@ org.springframework.format.annotation.DateTimeFormat java.util.Date]   价值'2019-07-15';嵌套异常为   java.lang.IllegalArgumentException:尝试解析值失败   [2019-07-15]]]

3 个答案:

答案 0 :(得分:1)

您看到的错误消息似乎是您试图使用TransaksiPenjualantanggal的原义日期字符串来保存/创建2019-07-15实体。基于@DateTimeFormat批注,您应该使用格式MM/dd/yyyy

您可以通过输入文字07/15/2019来解决此问题。

答案 1 :(得分:0)

您已为tanggal字段提供了日期格式为MM/dd/yyyy,但您正在提供2019-07-15。将模式更改为yyyy-MM-dd或将提供的值更改为07/15/2019

答案 2 :(得分:-1)

您应将 2019-07-15 的值格式更改为 07/15/2019 。因为,您使用@DateTimeFormat(pattern ="MM/dd/yyyy")此注释来格式化 tanggal