如何在hibernate中设置列值以结尾

如何在hibernate中设置列值以结尾,hibernate,bean-validation,hibernate-validator,Hibernate,Bean Validation,Hibernate Validator,我有一个拥有Gmail属性的用户实体。我想提出一个条件,gmail id必须以gmail.com结尾 我尝试使用正则表达式模式,但它给出了一个例外 在组[javax.Validation.groups.Default]的持久化期间,类[com.ciphercloud.ae.entities.Users]的验证失败 约束冲突列表:[ ConstraintViolationImpl{interpolatedMessage='必须匹配“gmail.com”,propertyPath=gmail,roo

我有一个拥有Gmail属性的用户实体。我想提出一个条件,gmail id必须以gmail.com结尾

我尝试使用正则表达式模式,但它给出了一个例外

在组[javax.Validation.groups.Default]的持久化期间,类[com.ciphercloud.ae.entities.Users]的验证失败 约束冲突列表:[ ConstraintViolationImpl{interpolatedMessage='必须匹配“gmail.com”,propertyPath=gmail,rootBeanClass=class com.ciphercloud.ae.entities.Users,messageTemplate='{javax.validation.constraints.Pattern.message} ]

hibernate中要使用的注释是什么。我的用户实体定义如下所示

@Entity
@Table(uniqueConstraints = @UniqueConstraint(columnNames = "gmailId"))

public class Users {

@Id
@GenericGenerator(name = "sequence_user_id", strategy = "com.ciphercloud.ae.generators.UserIdGenerator")
@GeneratedValue(generator = "sequence_user_id")
@Column(name = "id", insertable = false, updatable = false)
private String user_id;

@Pattern(regexp = "\gmail.com$")
private String gmailId;

private String role;

// all setters and getters

请建议我如何使用hibernate将gmail.com的gmail.com的插入值设置为结尾???

将regex更改为以下值可以正常工作

@Pattern(regexp = ".*(@gmail.com)")
private String gmailId;

您使用的注释正确,但您的regexp模式错误。我认为应该是这样的:“^.*[gmail.com]+$”