You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot与MongoDB CRUD应用模型类定义求助:Site含4个Cellular组件

解决Spring Boot + MongoDB中Site模型类的定义问题

嗨,我来帮你搞定这个模型类的定义!根据你的需求,我们可以把Cellular作为嵌入式文档嵌套在Site类中,完全适配MongoDB的文档型存储特性。下面是完整的实现方案:

1. 先定义Cellular类(蜂窝单元)

因为Cellular是Site的组成部分,不需要单独映射到MongoDB集合,所以它是一个普通POJO类,你可以根据业务需求添加专属属性:

import lombok.Data;

// 用Lombok的@Data自动生成getter、setter、toString等方法,减少样板代码
@Data
public class Cellular {
    private String cellularId; // 蜂窝单元自身ID
    private String frequencyBand; // 频段
    private int signalStrength; // 信号强度
    private String operatingStatus; // 运行状态(如正常/维护中)
    // 可按需添加更多属性:带宽、接入用户数等
}

2. 定义Site类(站点)

给Site添加MongoDB映射注解,同时嵌入4个Cellular对象:

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import lombok.Data;

// 指定该类映射到MongoDB的`sites`集合
@Document(collection = "sites")
@Data
public class Site {
    @Id
    private String siteId; // 站点ID,MongoDB会自动生成ObjectId(若不手动赋值)
    private String projectPhase; // 项目阶段
    private String region; // 地区
    private String city; // 城市
    private String siteName; // 站点名称
    
    // 对应需求中的4个蜂窝单元,用明确字段区分类型
    private Cellular primaryCellular; // 主蜂窝单元
    private Cellular secondaryCellular; // 次蜂窝单元
    private Cellular backupCellular; // 备份蜂窝单元
    private Cellular emergencyCellular; // 应急蜂窝单元
    
    // 若无需区分单元类型,也可用List存储(适合数量灵活的场景):
    // private List<Cellular> cellulars = new ArrayList<>();
}

关键细节说明

  • @Document注解:@Document(collection = "sites")告诉Spring Data MongoDB,该类实例会被存储到名为sites的MongoDB集合中。
  • @Id注解:标记siteId为文档主键,若不手动赋值,MongoDB会自动生成ObjectId类型的字符串ID。
  • 嵌入式文档:Cellular类无需加@Document,它会作为Site文档的子结构存储,示例存储结构如下:
{
  "_id": "60d21b4667d0d8992e610c85",
  "siteName": "北京朝阳区站点",
  "region": "华北",
  "city": "北京",
  "primaryCellular": {
    "cellularId": "CELL-001",
    "frequencyBand": "2.4GHz",
    "signalStrength": -50,
    "operatingStatus": "正常"
  },
  // 其他蜂窝单元字段...
}
  • Lombok简化代码:@Data注解自动生成getter、setter等方法,省去样板代码的编写;如果未使用Lombok,手动编写这些方法即可。

内容的提问来源于stack exchange,提问作者Achref Bannouri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:15:07