当前位置: 首页 > 知识库问答 >
问题:

打印JSON响应中包含类别的子类别列表

东门清夷
2023-03-14

我有一张这样的桌子

https://i.stack.imgur.com/ON3JL.png

这是此表的实体类

Where(clause = "active =1")
@Entity
@Table(name = "category", catalog = "businessin")
public class Category implements java.io.Serializable {


    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "id", unique = true, nullable = false)
    private Integer id;
    private String name;
    private Integer parentId;
    private Integer active;
    private String pic;
    @JsonIgnore
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "category")
    private List<Product> products = new ArrayList<Product>();

    setters&getter 
}

我正在使用spring rest和spring数据(jpaRepositories)构建RESTful API,
我希望在将控制器中的主要类别打印为JSON响应时,我希望它们也有一个子类别列表

[
{
id: 1,
name: "Electronics",
parentId: 0,
active: 1,
pic: null
}]

到这个

[
{
id: 1,
name: "Electronics",
parentId: 0,
active: 1,
pic: null
subCategories: [Mobile, Laptops]
}]

共有1个答案

潘国源
2023-03-14

这很简单,让你的实体像这样

@Where(clause = "active =1")
@Entity
@Table(name = "category" )
public class Category implements java.io.Serializable {


    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "id", unique = true, nullable = false)
    private Integer id;
    private String name;
    @Column(nullable=false,columnDefinition="int default 1")
    private Integer active;
    private String pic;
    @JsonIgnore
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "category")
    private List<Product> products = new ArrayList<Product>();
    @ManyToOne
       @JoinColumn(name="parent_id")
       @JsonIgnore
   // @ColumnDefault("0")
    private Category parentId;
    @OneToMany(mappedBy="parentId")
    private List<Category> subCategories=new ArrayList<>();

setters and getters

}
 类似资料:
  • 我目前有一个代码片段,其中对于每个类别,它将找到子类别: 将递归获取一个类别的子级: 目前,使用,只检索子类别的子类别,因此如果每个子类别都有自己的子类别,则不会将其保存到子类别中。 我如何显示子子类别给我们的子类别? 我想用我的代码做的是获取一个父级,获取它的子级,然后将这些子级中的每一个视为父级,递归地获取它的子级,但是我的JSON输出并没有反映这一点。只有父对象有子对象-子对象没有子对象(尽

  • 我的菜单结构如下所示: 类别1 -子类别 -子类别 类别2 -子类别 -子类别 类别3 但是我只想在产品存档和产品详细信息页面上显示活动类别及其子类别。像这样: 类别3 -SubCat -SubCat WooCommerce小部件显示了所有的类别,只有从活动类别的子类别,所以我认为这不是那么难修复它,但我不能在互联网上找到解决方案 (我通过制作不同的自定义菜单和if-else功能修复了它,但对于多

  • 类别表的结构: id 标题 家长id 项目表的结构: id 标题 is_active(0) category_id 表结构 表通过一对多关系与category_id字段相关联。1类可以有很多项。 类别表中的两级层次结构。这定义了主要类别和子类别。类别是那些父项id=NULL的记录。和子类别,这些记录中的父项_id=到某个id。 一个项目可以属于主类别(其中parent_id=null)和子类别(子

  • 问题内容: 我想在选择 列表(下拉列表)中显示类别,子类别和子子类别,就像WordPress在其管理面板中显示的方式一样。 首先看一下我的数据库表(tb_categories)- 数据库表 我想要以下HTML格式的输出- 输出 两项“无”和“未分类”在代码中进行了硬编码。我 想知道如何 使用选择列表选项以层次结构顺序显示类别及其子类别。 我正在尝试使用自我连接的以下sql查询。这 是- And t

  • 我正在使用产品的ms-sql db构建一个 asp.net 网站 - 每个产品属于一个或多个类别,每个类别可以属于一个或零个父类别。 用户应该能够选择零个或多个类别,但我想不出一种方法来只返回所选类别中的产品。 我有其他正在工作的过滤器(最低价格,品牌名称等),但不能让类别工作。 例如: 如果选择了类别1,则应返回具有最终父类别为类别1的类别的所有产品。 如果选择了子类别1.1和子类别1.2,则所

  • 我正试图通过WoodPress主题中的一个函数从woocommerce获取产品类别,我已经做到了: 这将按层次列出所有顶级类别及其下的子类别,但我有子类别(子类别)的子类别,因此如何列出这些子类别。