Hibernate请求枚举的javax.validation.constraints.Size

Hibernate请求枚举的javax.validation.constraints.Size,java,hibernate,validation,enums,dropwizard,Java,Hibernate,Validation,Enums,Dropwizard,使用dropwizard和hibernate 尝试执行持久化时出现的异常是 找不到约束的验证器 “javax.validation.constraints.Size”验证类型 “enums.ServiceType”。检查“类型”的配置 代码如下: @Table(name = "transactions", indexes = { @Index(name = "references_index", columnList = "reference_id

使用dropwizard和hibernate 尝试执行持久化时出现的异常是

找不到约束的验证器 “javax.validation.constraints.Size”验证类型 “enums.ServiceType”。检查“类型”的配置

代码如下:

@Table(name = "transactions",
        indexes = {
                @Index(name = "references_index", columnList = "reference_id")
        }
)

public class Transaction {

    @JsonIgnore
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private long id;

    @NonNull
    @NotEmpty
    @Column(name = "reference_id", unique = true)
    private String referenceId;

    @NonNull
    @NotEmpty
    @Column(name = "state")
    private String state;

    @NonNull
    @Column(name = "type")
    @Enumerated(EnumType.STRING)
    private ServiceType type;

    @NonNull
    @NotEmpty
    @Column(name = "provider")
    private String provider;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "created_date", insertable = false, updatable = false)
    private Date createdTimeStamp;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "last_updated", insertable = false, updatable = true)
    private Date updatedTimeStamp;

    public Transaction(String referenceId, String state, ServiceType type, String provider) {
        this.referenceId = referenceId;
        this.state = state;
        this.type = type;
        this.provider = provider;
    }

}
在哪里

做一个坚持道的人

class TransactionDAO extends AbstractDAO<Transaction> {
    /**
     * Creates a new DAO with a given session provider.
     *
     * @param sessionFactory a session provider
     */
    public TransactionDAO(SessionFactory sessionFactory) {
        super(sessionFactory);
    }

      protected Transaction persistTransaction(Transaction transaction) {
        return persist(transaction);
    }
}
class TransactionDAO扩展了AbstractDAO{
/**
*使用给定的会话提供程序创建新的DAO。
*
*@param sessionFactory会话提供程序
*/
公共事务DAO(SessionFactory SessionFactory){
超级(sessionFactory);
}
受保护的事务持久化事务(事务事务){
返回(事务);
}
}

在我的枚举中添加一个
@Valid
可以解决这个问题。但是我不知道为什么错误消息说它正在尝试javax.validation.constraints.Size

工作代码中的代码段

 @NonNull
 @Valid
 @Column(name = "type")
 @Enumerated(EnumType.STRING)
 private ServiceType type;
 @NonNull
 @Valid
 @Column(name = "type")
 @Enumerated(EnumType.STRING)
 private ServiceType type;