【问题标题】:JHipster : Generate MongoDB entities with JHipster Domain Language (JDL)JHipster : 使用 JHipster 域语言 (JDL) 生成 MongoDB 实体
【发布时间】:2017-07-09 16:15:05
【问题描述】:

我正在尝试使用 MongoDB 数据库的 JHipster。对于我的示例,我想存储书籍。为此,我想使用 JDL 格式来生成实体、存储库、服务、dtos……

这是我的实际 JDL 文件: 它有效:

entity Book {
    name String required
    date LocalDate required
}

dto all with mapstruct
paginate all with pager
service all with serviceImpl

现在,我想补充一点,Book 可以由 Author 编写。

我可以添加一个实体Author

entity Author {
        firstane String required
        lastname LocalDate required
    }

我的具体问题是:如何关联AuthorBook

文档中有这个例子:

relationship OneToMany {
  Author{book} to Book{writer(name) required}
}

但这不起作用,因为 NoSQL 数据库不支持关系。那么,我该如何实现呢?

谢谢。

【问题讨论】:

  • 从jdl导入时可以在mongodb的数据库中生成collection吗?

标签: java mongodb jhipster jdl


【解决方案1】:

您还没有明确说明您想对您的实体做什么。对于 NoSQL 数据库,这成为一个更重要的问题。假设您想将一位作者及其所有书籍作为一个文档返回。

这里有一些选项:

  • 在 JHipster 中有两个没有正式关系的独立实体。创建一个service,它使用作者存储库查找作者,并使用图书存储库获取具有相同作者 ID 的书籍。
  • 在 JHipster 中有一个作者实体。每个 Author 的模型书为 array of embdedded documents。不幸的是,JHipster 似乎不允许您将列表类型定义为实体 fields,因此您必须自己将其添加到 Java 代码中。
  • 您可以使用 mongodb 3.2 中的 $lookup 功能来获取给定作者的书籍。 spring-data-mongo 中的 DBRef 功能在这种情况下可能会有所帮助。

【讨论】:

    猜你喜欢
    • 2016-10-06
    • 2016-10-30
    • 2018-10-04
    • 2019-04-17
    • 2021-07-20
    • 2021-01-14
    • 2022-07-19
    • 2017-10-21
    • 2020-03-29
    相关资源
    最近更新 更多