获取子栏目方法应该放在Entity还是Service层?-灵析社区

代码日记

大佬们,我想写个获取子栏目的方法,这个写在entity(po)里合适吗?还是写到service里或其他什么地方? 目前写在了实体类里(entity?po?domain?) Cat.java package com.test.blog.pojo.po; import java.util.List; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * 栏目实体类 */ @Data @NoArgsConstructor @AllArgsConstructor public class Cat extends Model { // 配置主键为自增类型 @TableId(type = IdType.AUTO) private Integer catid; private String catname; private Integer pid; private String title; private String description; private Integer sortid; private Short pagesize; // 获取子栏目 public List getChildren() { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("pid", this.catid); List list = selectList(queryWrapper); return list; } }

阅读量:136

点赞量:0

问AI
两种写法都可以,取决于项目设计。 从面向对象的角度出发,写在Entity中是对的。毕竟Java是面向对象的语言 :) 但是就常见的项目实践来说,一般是写在Service层。说到底现在的项目还是面向接口编程居多,而且考虑到MyBatis-Plus在项目中的应用,很多项目会使用覆盖式策略自动生成Entity层的实体类对象代码,如果把getChilgren方法写在Entity层,一但数据库调整导致刷新Entity层代码,很可能导致这些自定义的方法被覆盖删除,导致项目报错。 综上,如果是面向对象的实践项目或者自己用的小项目,自己喜欢就好,写在Entity会更符合语义。如果是团队项目,建议配合团队项目规范,通常是后者。