title: @Valid for long data type is not working for mandatory check
body: <p>I have the below input class and when i trigger the api without 'interactionId' param in the input,
  I expect validation error message "interactionId cannot be empty" but the validation passes through which i guess could be due to the fact that interactionId has a default value of 0.</p>
  
  <p>Can someone pls. help to enforce this validation on the 'long' parameter when its not given in input?</p>
  
  <p>with @NotEmpty for the customerId param, its working as expected. Using @NotEmpty for the long param "interactionId" is throwing a different error that @notempty cannot be used for long.</p>
  
  <pre><code>public class Input {
  
  @NotEmpty(message = "customerId cannot be empty")
  private String customerId;
  
  @Valid
  @NotNull(message = "interactionId cannot be empty")
  private long interactionId;
   // setters and getters
  
  }
  </code></pre>
  
  <p>my controller class:
      @RestController
  public class Controller {</p>
  
  <pre><code>@PostMapping(value="/detailed-customer-transaction", produces = 
  MediaType.APPLICATION_JSON_VALUE)
  @ResponseBody
  public ResponseEntity&lt;Object&gt; detailTransactions(@Valid @RequestBody Input 
  params)
  {
      return new ResponseEntity&lt;&gt;(Dao.detailTransactions(params), HttpStatus.OK);
  }
  </code></pre>
  
  <p>Above issues is resolved after changing to Long instead of long.</p>
  
  <p><strong>Query #2</strong>
  I need another help. I have a String input param which takes date-time format in below format. Given its a string parameter, how can i validate for the pattern="yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"</p>