Web 应用程序 Spring Boot 和 Angular 5

Posted

技术标签:

【中文标题】Web 应用程序 Spring Boot 和 Angular 5【英文标题】:Web application spring boot and angular 5 【发布时间】:2018-09-27 02:59:12 【问题描述】:

我正在使用 Spring boot 和 MongoDB 制作一个简单的 CRUD 应用程序,我面临的问题是我不知道如何定义模型类。

我的应用程序应该是这样的:

网站具有一些特征,例如 ID、地区、城市……并包含 4 个部分(蜂窝),每个部分都有自己的特征。任何帮助,将不胜感激。

这是我目前所拥有的:

public class Site 

    @Id
    String siteId;
    String projectPhase;
    String region;
    String city;
    String siteName;
    String newSiteName;
    String clusterName ;
    String longitude ;
    String lattitude ;

    @OneToMany(mappedBy = "siteId")
    List  L;

我想知道的是如何在这个类中关联另一个类。

【问题讨论】:

问题似乎是关于 ORM/JPA(由 Spring Boot 使用),而不是关于 typescript、mongo 或 angular5。此外,目前还不清楚您尝试了什么,以及您想关联什么其他类。提供有关您的确切问题的更多详细信息;就问题而言,无法回答。 【参考方案1】:

@OneToMany 之类的注解通常在 JPA 上下文中使用,并且在使用 Spring Data MongoDB 时是不必要的。 the documentation也提到了这一点:

没有必要使用@OneToMany 之类的东西,因为映射框架认为您需要一对多关系,因为存在List 对象。

当您想在使用 MongoDB 时定义一对多关系时,您有几个选择。其中第一个是将它们定义为同一文档中的嵌入对象:

@Document
public class Site 
     @Id
     private String id;
     private String city;
     private String region;
     private List<Part> cellulars;


public class Part 
    private String characteristic1;
    private String characteristic2;

这意味着这些部分并不独立存在,因此它们也不需要自己的 ID。

另一种可能是参考另一个文件:

@Document
public class Site 
     @Id
     private String id;
     private String city;
     private String region;
     @DBRef
     private List<Part> cellulars;


@Document
public class Part 
    @Id
    private String id;
    private String characteristic1;
    private String characteristic2;

在这种情况下,部件也是单独的文档,并且站点只包含对该部件的引用。

【讨论】:

非常感谢您的回答,这很有帮助。

以上是关于Web 应用程序 Spring Boot 和 Angular 5的主要内容,如果未能解决你的问题,请参考以下文章

Spring-Boot学习

为啥 Spring Boot 应用程序 pom 同时需要 spring-boot-starter-parent 和 spring-boot-starter-web?

Spring Boot 的 Web 应用程序开发

Spring Boot报错:java.lang.IllegalArgumentException: An invalid character [..] was present in the Cooki

dockerized 环境中的 Keycloak 和 Spring Boot Web 应用程序

Spring Boot入门第二天:一个基于Spring Boot的Web应用,使用了Spring Data JPA和Freemarker。