Mybatis实体类中的annotation

本文深入探讨了Java BeanValidation框架中的内置constraint,包括@Null、@NotNull、@AssertTrue等,以及HibernateValidator提供的附加constraint如@NotBlank、@Email等。详细解释了每个约束的作用和使用场景。
Bean Validation 中内置的 constraint
 
@Null 被注释的元素必须为 null
@NotNull 被注释的元素必须不为 null
@AssertTrue 被注释的元素必须为 true
@AssertFalse 被注释的元素必须为 false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max=, min=) 被注释的元素的大小必须在指定的范围内
@Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式

Hibernate Validator 附加的 constraint
@NotBlank(message =)   验证字符串非null,且长度必须大于0
@Email 被注释的元素必须是电子邮箱地址
@Length(min=,max=) 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串的必须非空
@Range(min=,max=,message=) 被注释的元素必须在合适的范围内

### MyBatis 实体类字段忽略的注解使用方法 在 MyBatis-Plus 中,可以通过 `@TableField` 注解来控制实体类中的字段是否映射到数据库表字段。如果某个字段不是数据库表的一部分,则可以设置该字段不参与 SQL 的操作。 对于非数据库字段的情况,可以直接使用如下方式: #### 方法描述 当定义一个实体类时,某些字段可能仅用于程序逻辑而不对应于数据库表结构。此时可以在这些字段上添加 `@TableField(exist = false)` 注解[^1],从而告诉框架此字段不需要映射至数据库表字段。这样能够有效避免因未知列而导致的异常 `java.sql.SQLSyntaxErrorException: Unknown column '...' in 'field list'`。 以下是具体的代码实现示例: ```java import com.baomidou.mybatisplus.annotation.TableField; public class ExampleEntity { private Long id; // 数据库中存在的字段 private String name; // 非数据库字段,需标注 exist=false @TableField(exist = false) private String nonDatabaseField; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNonDatabaseField() { return nonDatabaseField; } public void setNonDatabaseField(String nonDatabaseField) { this.nonDatabaseField = nonDatabaseField; } } ``` 上述代码中,`nonDatabaseField` 字段由于标记了 `@TableField(exist = false)`,因此不会参与到任何与数据库交互的操作之中。 另外,在更复杂的场景下还可以利用其他参数进一步定制化行为。例如通过指定策略 (`strategy`) 来决定如何处理特定条件下的字段验证问题[^3]。 ### 补充说明 除了基本功能外,有时还需要考虑特殊情况如字段名称冲突或者涉及保留字等问题。这时也可以借助相同的注解机制解决,只需额外提供自定义别名即可[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值