繁体   English   中英

为什么我不能输入空值?

[英]Why can't i input a null value?

我一直在用Java Spring进行一个小项目。 我已经在Navicat中将表结构设置为能够“空”值。 我也将模型设置为能够为空值。

但是,我仍然无法在该列中输入空值并收到此错误消息。

仅供参考:我正在使用Spring Tool Suite 3.9.7 IDE

Field error in object 'sertifikasihapus' on field 'modified_on': rejected value []; 
codes [typeMismatch.sertifikasihapus.modified_on,typeMismatch.modified_on,typeMismatch.java.sql.Timestamp,typeMismatch]; 
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [sertifikasihapus.modified_on,modified_on]; 
arguments []; 
default message [modified_on]]; 
default message [Failed to convert property value of type 'java.lang.String' to required type 'java.sql.Timestamp' for property 'modified_on'; 
nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@javax.persistence.Column java.sql.Timestamp] for value ''; 
nested exception is java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]]]

 <script> $('#idBtnHapusHapus').click(function() { var vDataRole = $('#idFrmHapusSertifikasi').serialize(); var angka = $('#Id').val(); var nama = $('#idNamaSertifikasi').val(); if ($("#idModifiedOn").val().length < 1) { $('#idModifiedOn').val(null); debugger; $.ajax({ url : './hapussertifikasi/' + angka, type : 'Put', data : vDataRole, dataType : "json", success : function(model) { debugger; window.location = './sertifikasi' }, error : function(model) { debugger; } }); } else { debugger; $.ajax({ url : './hapussertifikasi/' + angka, type : 'Put', data : vDataRole, dataType : "json", success : function(model) { debugger; window.location = './sertifikasi' }, error : function(model) { debugger; } }); } }); </script> 
 <div class="col-xs-12"> <div class="row"> <form id="idFrmHapusSertifikasi" method="post"> <input type="hidden" class="form-control" id="Id" name="id" placeholder=""> <input type="hidden" class="form-control" id="idNamaSertifikasi" name="certificate_name" placeholder=""> <input type="hidden" class="form-control" id="idBulanBerlaku" name="valid_start_month" placeholder=""> <input type="hidden" class="form-control" id="idTahunBerlaku" name="valid_start_year" placeholder=""> <input type="hidden" class="form-control" id="idPenerbit" name="publisher" placeholder=""> <input type="hidden" class="form-control" id="idBulanBerlakuS" name="until_month" placeholder=""> <input type="hidden" class="form-control" id="idTahunBerlakuS" name="until_year" placeholder=""> <input type="hidden" class="form-control" id="idCatatan" name="notes" placeholder=""> <input type="hidden" class="form-control" id="idCreateOn" name="createOn" placeholder=""> <input type="hidden" class="form-control" id="idCreateBy" name="createBy" placeholder=""> <input type="hidden" class="form-control" id="idModifiedOn" name="modified_on" placeholder=""> <input type="hidden" class="form-control" id="idModifiedBy" name="modified_by" placeholder=""> </form> <div class="col-xs-2"> <i class="glyphicon glyphicon-trash center" style="font-size: 50px"></i> </div> <div class="col-xs-8"> <div class="clTulisanHapus center" id="idTulisanHapus"> <p>Anda Yakin ingin menghapus Sertifikasi</p> <!-- I WANTED THE CERTIFICATE NAME TO BE HERE --> <div th:each="item:${oneprofil}"> <b><p th:text="${item.certificate_name}+' ?'"></p></b> </div> </div> </div> </div> </div> <div class="col-md-offset-8"> <div class="btn-group"> <input type="hidden" id="idDataId"> <input type="hidden" id="idDataNama"> <button type="button" id="idBtnHapusBatal" data-dismiss="modal" class="btn clBtnMdlHapus">Tidak</button> <button type="button" id="idBtnHapusHapus" data-id="${item.id}" class="btn clBtnMdlHapus">Ya</button> </div> </div> 

看起来您的值不为null,而是空的String(“”)。 您可以使用关键字null而不带任何“引号”。

有关更多信息,请参见以下问题:

在实践中,您可以简单地假装它是“仅仅是可以用于任何引用类型的特殊文字”。

[无法将属性'modified_on'的'java.lang.String'类型的属性值转换为所需的'java.sql.Timestamp'类型;

您将以空字符串而不是null的形式接收该值,这会导致类型不匹配并引起问题。

从HTML中,我看到您将其作为隐藏参数发送。 还有另一种方法可以在Spring Boot中自动设置创建日期和修改日期。

在实体下方使用

    @PrePersist
    protected void prePersist() {
        createdAt = set value here
    }

    @PreUpdate
    protected void preUpdate() {
        modifiedOn = set valye here
    }

冬眠

Spring Data JPA

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM