java - 为什么我不能输入空值?

标签 java spring spring-boot spring-mvc

我一直在使用 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

有关更多信息,请参阅此 question:

in practice you can simply pretend that it's "merely a special literal that can be of any reference type".

关于java - 为什么我不能输入空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57302415/

相关文章:

Spring Acegi - 社交网络平台

java - 修复这些 boolean 值的简单方法是什么?

java - Maven : Getting compilation error using the Install command through cmd

java - 无法在 ButterKnife 中使用 findById

Java, Spring : Testing DAOs for DataAccessException with Mockito

spring - 尝试在 jsp 中显示图像(blob 对象)时出错(Spring 和 Hibernate with Oracle Database)

java - 如何在 SpringBoot 中使用额外的列保存实体多对多新实体

spring - 我可以从没有注释 componentscan,autoconfiguration,configuration,springbootapplication 的 spring boot 应用程序开始吗?

java - 如何使用ReactiveUserDetailsS​​ervice springboot通过Rest API登录

java - 以编程方式创建 Android 滚动列表