为Date.sql列插入DEFAULT值

时间:2016-06-14 19:08:36

标签: java mysql hibernate jsp

我正在使用Mysql DBMS,我试图将null值放入POJO中映射的Date列中。用户可以在日期输入标签上插入值(日期不是必填字段),当日期输入值为空时我得到

  

客户发送的请求不正确

我知道sql.Date不能包含null值。我怎样才能解决这个问题?

实体

@Entity
@Table(name = "DEPUTES_APPEAL")
public class DeputeAppeal extends Appeal implements Serializable {

    private static final long serialVersionUID = -5527566248002296042L;

    @Id
    @Column(name = "ID")
    @GeneratedValue
    private int id;

    @Column(name = "TypeOfDeputeAppeal")
    private String typeOfDeputeAppeal;

    @Column(name = "outNumber")
    private String outNumber;

    @Column(name = "outDate")
    private Date outDate;

    @Column(name = "countOfPages")
    private String countOfPages;

    @Column(name = "nameOfDepute")
    private String nameOfDepute;

    @Column(name = "incomeNumber")
    private String incomeNumber;

    @Column(name = "incomingDate")
    private Date incomingDate;

    @Column(name = "themeOfAppeal")
    private String themeOfAppeal;

    @Column(name = "shortContentOfAppeal")
    private String shortContentOfAppeal;

    @Column(name = "unitWhoDoResolution")
    private String unitWhoDoResolution;

    @Column(name = "contentOfResolution")
    private String contentOfResolution;

    @Column(name = "checkForPlagiarism")
    private String checkForPlagiarism;

    @Column(name = "nameAndAddressOfApplicant")
    private String nameAndAddressOfApplicant;

    @Column(name = "dateForCheck")
    private Date dateForCheck;

    @Column(name = "mainWorker")
    private String mainWorker;

    @Column(name = "secondaryWorkers")
    private String secondaryWorkers;

    @Column(name = "statusOfWorking")
    private String statusOfWorking;

    @Column(name = "result")
    private String result;

    @Column(name = "filePath")
    private String FilePath;

    public DeputeAppeal(){}

JSP

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html lang="uk">
<head>
  <title>Додати нове</title>
  <!-- Bootstrap core -->
  <meta charset="utf-8">
  <!-- Jquery -->
  <script src="../../../resources/bootstrap/jquery/jquery-2.2.2.min.js"></script>

  <!-- Latest compiled JavaScript -->
  <script src="../../../resources/bootstrap/js/bootstrap.js"></script>

  <link href="<c:url value="/resources/bootstrap/css/bootstrap.css" />" rel="stylesheet">

  <link href="<c:url value="/resources/styles/addNewDeputeAppealPage.css" />" rel="stylesheet">

</head>

<body>

<div class="container head">

  <a href="../generalView/mainPage.jsp"><img class="header" src="../../../resources/images/police.png"></a>

</div>

<c:url value="/deputeAppeal/newDeputeAppealPost" var="SaveUrl"/>

<form:form modelAttribute="${deputeAppeal}" method="POST" action="${SaveUrl}">

  <div class="container content">

    <div class="form-group" id="firstBlock">

      <label>Вид</label>
      <select path="typeOfDeputeAppeal" name="typeOfDeputeAppeal" class="form-control">
        <option disabled selected value>Тип</option>
        <option value="Звернення">Звернення</option>
        <option value="Запит">Запит</option>
      </select>


      <label>Номер вих.</label>
      <input type="text" class="form-control" path="outNumber" name="outNumber"/>


      <label>Дата вих.</label>
      <input type="date" class="form-control" path="outDate" name="outDate"/>


      <label>К-сть сторінок</label>
      <input type="number" class="form-control" placeholder="наприклад 1+1" path="countOfPages" name="countOfPages"/>


      <label>П.І.Б народного депутата</label>
      <input type="text" class="form-control" path="nameOfDepute" name="nameOfDepute"/>


      <label>Номер вх.</label>
      <input type="text" class="form-control" path="incomeNumber" name="incomeNumber"/>


      <label>Дата вх.</label>
      <input type="date" class="form-control" path="incomingDate" name="incomingDate"/>


      <label>Тематика</label>
      <select class="form-control" path="themeOfAppeal" name="themeOfAppeal">
        <option disabled selected value>Тип</option>
        <option value="Неналежне розслідування крим.проваджень">Неналежне розслідування крим.проваджень</option>
        <option value="Соц.побутові питання працівників поліції">Соц.побутові питання працівників поліції</option>
        <option value="Інші питання">Інші питання</option>
      </select>


      <label>Короткий зміст</label>
      <textarea class="form-control" path="shortContentOfAppeal" name="shortContentOfAppeal"></textarea>


    </div>

    <div class="form-group" id="secondForm">

      <label>Керівник що вчинив резолюцію</label>
      <select class="form-control" path="unitWhoDoResolution" name="unitWhoDoResolution">
        <option disabled selected value>Тип</option>
        <option value="Деканоідзе Х.">Деканоідзе Х.</option>
        <option value="Троян В.А.">Троян В.А.</option>
        <option value="Вакуленко О.Ф.">Вакуленко О.Ф.</option>
        <option value="Фацевич О.Ю.">Фацевич О.Ю.</option>
        <option value="Руденко А.А.">Руденко А.А.</option>
        <option value="Бушуєв К.В.">Бушуєв К.В.</option>
      </select>

      <label>Зміст резолюції</label>
      <textarea class="form-control" path="contentOfResolution" name="contentOfResolution"></textarea>

      <label style="color: red;">Повторність</label>
      <input type="checkbox" value="повторно" path="checkForPlagiarism" name="checkForPlagiarism"/>Так<br>

      <label>П.І.Б. та адреса заявника</label>
      <textarea class="form-control" path="nameAndAddressOfApplicant" name="nameAndAddressOfApplicant"></textarea>


      <label>Дата виконання документу</label>
      <input type="date" class="form-control" path="dateForCheck" name="dateForCheck"/>

      <label>Служба виконавця</label>
      <select class="form-control" path="mainWorker" name="mainWorker">
        <option disabled selected value>Тип</option>
        <option value="ДПО">ДПО</option>
        <option value="ДЗЕ">ДЗЕ</option>
        <option value="ДПП">ДПП</option>
      </select>

      <label>Співвиконавці</label>
      <input type="text" class="form-control" path="secondaryWorkers" name="secondaryWorkers"/>

      <label>Наслідки виконання</label>
      <select class="form-control" path="statusOfWorking" name="statusOfWorking">
        <option disabled selected value>Тип</option>
        <option value="Виконано">Виконано</option>
        <option value="В роботі">В роботі</option>
        <option value="Не виконано">Не виконано</option>
      </select>

      <label>Що зроблено</label>
      <textarea class="form-control" path="result" name="result"></textarea>

    </div>

  </div>

  <div class="container">
    <div class="row">
      <div class="col-md-12 footer_button">
        <button type="submit" value="Save" class="btn btn-success">Зареєструвати</button>
      </div>
    </div>
  </div>

</form:form>
</body>
</html>

全部谢谢

2 个答案:

答案 0 :(得分:1)

实际上,您可以将null插入到使用java.sql.Date列映射的MySql数据列中。您需要检查outDate表中的DEPUTES_APPEAL列是否定义了默认值。您可以将其更改为默认值为NULL:

alter table your_table modify your_date_column date null default null;

答案 1 :(得分:1)

您需要在创建表格时自行处理。

CREATE TABLE tablename(   columnname varchar(100)DEFAULT'Defaultvalue' );