mybatis entity 忽略字段持久化的注解
时间: 2023-08-03 16:46:12 浏览: 246
Mybatis 本身并没有提供忽略字段持久化的注解,但是可以使用其他框架提供的注解来实现该功能。
一种常用的方法是使用 JPA 规范提供的 `@Transient` 注解,该注解可以标注在实体类的属性或者 getter 方法上,表示该属性不需要进行持久化。示例代码如下:
```java
public class User {
private Long id;
private String username;
@Transient
private String password;
// getter 和 setter 方法省略
}
```
另一种方法是使用 Mybatis-Plus 提供的注解,该注解是 `@TableField`,可以标注在属性上,用来指定该属性是否需要进行持久化。示例代码如下:
```java
public class User {
private Long id;
private String username;
@TableField(exist = false)
private String password;
// getter 和 setter 方法省略
}
```
在上面的代码中,`@TableField(exist = false)` 表示 `password` 属性不需要进行持久化。
需要注意的是,如果使用 `@TableField` 注解来忽略字段持久化,需要确保在 Mybatis-Plus 配置中开启了对应的功能,具体可以参考官方文档。
相关问题
mybatis entity 忽略字段的注解
在 Mybatis 中,可以使用 `@Transient` 注解来忽略实体类中的某些字段,这些字段在映射到数据库表时不会被持久化。可以将 `@Transient` 注解放在实体类中的字段或者 getter 方法上。例如:
```java
public class User {
private Long id;
private String username;
@Transient
private String password;
// getter 和 setter 方法省略
}
```
在上面的例子中,`password` 字段使用了 `@Transient` 注解,因此在映射到数据库表时不会被持久化。注意,`@Transient` 注解需要导入 `javax.persistence.Transient` 包。
mybatis-plus entity基类
### MyBatis-Plus 中 Entity 基类的使用方法和实现细节
#### 一、简介
MyBatis-Plus 提供了一个抽象的基础实体类 `BaseEntity` 或者接口 `IPage<T>` 来帮助开发者快速构建自己的业务实体。通过继承这些基础组件,能够自动获得一系列便捷的方法用于处理常见的持久化逻辑。
#### 二、主要特性
##### 继承自 BaseMapper 的默认行为支持
当定义一个新的 Mapper 并让它扩展 `com.baomidou.mybatisplus.core.mapper.BaseMapper` 后,在对应的 XML 文件里无需再编写 SQL 映射语句即可完成基本的数据存取操作[^2]。
##### 自动填充字段
对于某些特定场景下的属性值设置需求(比如创建时间戳),可以通过实现 `MetaObjectHandler` 接口来自动生成并维护这类信息而不需要手动干预每一个新增或更新动作[^1]。
```java
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
}
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
}
}
```
##### 主键策略设定
为了方便不同类型的主键生成机制的选择,默认提供了几种常见的方式如雪花算法(Snowflake),UUID等;也可以根据项目实际情况定制专属方案[^3]。
```java
@TableId(type = IdType.AUTO)
private Long id;
// OR
@TableId(value="id", type= IdType.INPUT)
private String customId;
```
#### 三、常用注解介绍
| 注解名称 | 描述 |
| --- | --- |
| `@TableField` | 指定表中的列名及其附加选项,例如是否忽略该字段不参与查询条件拼接等 |
| `@Version` | 支持乐观锁版本控制标记 |
| `@LogicDelete` | 软删除标志位 |
阅读全文
相关推荐














