返回实体类对象的部分属性给前端的三种方法

分两种类型:

1.要返回的属性是实体类的部分属性,不含额外的属性
2.要返回的属性是实体类的部分属性,又含额外的属性

方法1:对于类型1:使用@JsonIgnore注解。

如果使用的是JSON作为数据交换格式,可以在实体类上使用注解来控制序列化行为。

对于Jackson库,可以使用@JsonIgnore注解来忽略不需要的属性:

java 复制代码
import com.fasterxml.jackson.annotation.JsonIgnore;

public class MyEntity {
    private String visibleField;
    @JsonIgnore
    private String hiddenField;
    // getters and setters
}

方法二:对于类型1和2:创建一个DTO(Data Transfer Object)类,DTO是专门设计用于数据传输的类。

java 复制代码
public class MyEntity {
    private String field1;
    private String field2;
    private String field3;
    // getters and setters
}

public class MyEntityDTO {
    private String field1;
    private String field2;
    private String field4;//额外的属性
    // Only getters and setters for fields you want to expose
}

// 在业务逻辑或服务层中
MyEntity entity = // ... get from database
MyEntityDTO dto = new MyEntityDTO();
dto.setField1(entity.getField1());
dto.setField2(entity.getField2());
dto.setField4("额外的属性");
// Return dto to the frontend

方法三:对于类型1和2:使用Map

java 复制代码
Map<String, Object> response = new HashMap<>();
response.put("field1", entity.getField1());
response.put("field2", entity.getField2());
response.put("field4", "额外的属性");
// Do not include "field3"
return response;
相关推荐
坐吃山猪1 天前
SpringBoot01-配置文件
java·开发语言
我叫汪枫1 天前
《Java餐厅的待客之道:BIO, NIO, AIO三种服务模式的进化》
java·开发语言·nio
yaoxtao1 天前
java.nio.file.InvalidPathException异常
java·linux·ubuntu
Swift社区1 天前
从 JDK 1.8 切换到 JDK 21 时遇到 NoProviderFoundException 该如何解决?
java·开发语言
DKPT1 天前
JVM中如何调优新生代和老生代?
java·jvm·笔记·学习·spring
phltxy1 天前
JVM——Java虚拟机学习
java·jvm·学习
seabirdssss1 天前
使用Spring Boot DevTools快速重启功能
java·spring boot·后端
喂完待续1 天前
【序列晋升】29 Spring Cloud Task 微服务架构下的轻量级任务调度框架
java·spring·spring cloud·云原生·架构·big data·序列晋升
benben0441 天前
ReAct模式解读
java·ai