Hibernate请求枚举的javax.validation.constraints.Size
使用dropwizard和hibernate 尝试执行持久化时出现的异常是 找不到约束的验证器 “javax.validation.constraints.Size”验证类型 “enums.ServiceType”。检查“类型”的配置 代码如下: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
@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;