JHipster:使用JHipster域语言(JDL)生成MongoDB实体

时间:2017-07-09 16:15:05

标签: java mongodb jhipster jdl

我正在尝试使用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数据库不支持关系。那么,我该如何实现呢?

感谢。

1 个答案:

答案 0 :(得分:2)

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

以下是一些选项:

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