找不到类型的验证器:java.lang.Long。有 post 个 ID

No validator could be found for type: java.lang.Long. with post ID

我的程序有什么问题?我收到错误

HTTP Status 500 - Request processing failed; nested exception is javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.Long.

不知道怎么解决...在堆栈跟踪中,我写的唯一 class 是

myapp.spring.controllers.PostFormController.processForm(PostFormController.java:66)

而这一行是

validator.validate(p, result);

Post.java

// imports

@Entity
@Table(name="posts")
public class Post implements Serializable
{
        /* **********************************
         * ------------ fields ------------ *
         ************************************/
        /**
         *
         */
        private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue(strategy=GenerationType.IDENTITY)
        private long id;

        @Past
        @Column(name="date")
        private Date date;

        @NotBlank
        @Size(min=3, max=20)
        @Column(name="author")
        private String author;

        @NotBlank
        @Column(name="content")
        private String content;

        @NotBlank
        @Column(name="topic")
        private String topic;

        @NotBlank
        @Column(name="thread_id")
        private long thread_id;

        @ManyToOne
        @JoinColumn(name="name")
        @Valid
        private PostType type;



        /* ***************************************
         * ---------- getters setters ---------- *
         *****************************************/
       // cut // 

}

blah blah blah 无法添加,因为 post 中的代码太多 :S

问题可能出在这一行:

@NotBlank
@Column(name="thread_id")
private long thread_id;

NotBlank 对 long 类型的字段没有意义。 Long 不能为空或不为空。只有 String 可以。因此错误消息:

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.Long