【问题标题】:How to set column value ends with in hibernate如何设置列值以休眠结束
【发布时间】:2017-10-15 13:12:55
【问题描述】:

我的用户实体具有 gmailId 属性。我想提出 gmail id 必须以 gmail.com 结尾的条件。

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

在组 [javax.validation.groups.Default, ] 的持续时间内,类 [com.ciphercloud.ae.entities.Users] 的验证失败 约束违规列表:[ ConstraintViolationImpl{interpolatedMessage='必须匹配“gmail.com”', propertyPath=gmailId, 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 设置 gmailId 的插入值应以 gmail.com 结尾的条件????

【问题讨论】:

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

标签: hibernate bean-validation hibernate-validator


【解决方案1】:

将正则表达式更改为如下工作正常。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    相关资源
    最近更新 更多