gpt4 book ai didi

java - 如何对相关Java字符串强制执行数据库字段大小限制?

转载 作者:行者123 更新时间:2023-12-01 05:56:40 25 4
gpt4 key购买 nike

防止试图存储超出 VARCHAR2 数据库字段所能容纳的文本的正确方法是什么?

假设 REGISTRATIONS 表的 PARTNER_ROLE 字段声明为 VARCHAR2(80)。

该字段在 Java 的 Registration 类中映射为

public class Registration {
@Column(name=”PARTNER_ROLE” length=”80”)
private String partnerRole;
}

但是,setPartnerRole() 方法允许用户填充任意长度的字符串。仅当随后尝试插入或更新 REGISTRATIONS 记录时才会遇到此问题。甲骨文提示道。

处理这种情况的正确方法是什么?

最佳答案

您可以使用 JSR-303 Bean Validation 注释来注释具有最大长度的字段,然后您可以使用 validator 来检查这些注释是否得到满足,例如当 setter 被调用时。这也可用于自动向您提供有意义的错误消息。

public class Registration {
@Size(max = 80)
@Column(name=”PARTNER_ROLE” length=”80”)
private String partnerRole;

// you need to get this from somewhere, but this depends on your environment
private ValidatorFactory validatorFactory;

public Set<ConstraintViolation<Registration>> validate() {
Validator validator = validatorFactory.getValidator();
return validator.<Registration>validate(this);
}
}

关于java - 如何对相关Java字符串强制执行数据库字段大小限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2744393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com