查询学生信息排除年龄列表 📚🔍
使用MyBatis-Plus排除某些字段。如果你想要进行查询,但又不需要包含某些字段,那么这个功能将非常适合你。🔍🎓📝
1. 学生信息查询-排除年龄列表
在使用 MyBatis-Plus 进行查询时,我们可以使用以下示例代码来选择不必要的字段:
java
return lambdaQuery()
.select(Student.class , info -> ! info.getColumn().equals("age"))
.list();
在这个 Lambda 表达式中,info
是一个 TableFieldInfo
对象,表示实体类中的一个字段信息。getColumn()
方法返回字段的名称。
!info.getColumn().equals("age")
的含义是判断字段名称是否等于 "age",如果字段名称不等于 "age",则条件判断结果为 true
,表示选择该列进行查询;如果字段名称等于 "age",则条件判断结果为 false
,表示不选择该列进行查询, !
运算符表示逻辑非,将判断结果取反。
因此,这段代码的作用是选择字段名称不等于 "age" 的列进行查询,而排除了名为 "age" 的列。
这个功能的好处在于我们可以轻松地进行字段的选择,而无需编写 SQL 语句。让我们看看返回结构:
2.设定默认属性非空规则 📄✨
如果你不想给前端返回空值,那么你可以使用以下配置来设定默认属性的非空规则:
yaml
spring:
jackson:
defaultPropertyInclusion: NON_NULL
当我们使用 Jackson 将 Java 对象序列化为 JSON 时,可以通过设置 defaultPropertyInclusion
属性来指定默认的属性包含策略。属性的包含策略有以下几种选项:
ALWAYS
:包含所有属性,包括 null 值。NON_NULL
:只包含非空属性。NON_EMPTY
:只包含非空且非空字符串属性。NON_DEFAULT
:只包含在对象中明确设置过值的属性。
通过将 defaultPropertyInclusion
设置为 NON_NULL
,我们可以确保在序列化为 JSON 时,只有非空的属性会被包含在内,而 null 值将不会被返回给前端。这个设置非常方便,可以有效地优化前端的数据处理。
让我们看看下面的返回结果,更好地理解这个设置的作用:
结语 📝🎉
MyBatis-Plus 的强大功能确实查询提供了很大的便利。通过选择不必要的字段以及设定默认属性的非空规则,我们可以更加灵活地操作查询结果,并优化前端数据的展示!👍📢