jhipster jdl导入微服务

时间:2017-08-02 18:03:25

标签: java microservices jhipster jdl

我有一个model.jdl,所有实体都定义为

entity A{ ... }
entity B{ ... }
entity C{ ... }
entity D{ ... }

我添加了一些选项来在微服务中分发这些实体,有时会这样:

microservice A,B with gateway 
microservice C with app1
microservice D with app2

当我在网关文件夹中运行“yo jhipster:import-jdl model.jdl”命令时,liquibase的更改日志不包含实体A和B.

如果我在apps文件夹中运行导入,liquibase changelog会显示忽略已定义分发的所有实体

我在没有微服务选项的单片应用程序中测试了该模型,效果很好......

这是一个测试模型:

entity Car{
    name String required
    color Color
}

enum Color{
    BLACK,WHITE,BLUE,GREEN,YELLOW
}

entity House{
    address String required
}

entity Info{
    phone String required
}

relationship OneToOne{
    Info{user(login) required} to User
}

microservice Info with gateway
microservice Car with app1
microservice House with app2
search * with elasticsearch

1 个答案:

答案 0 :(得分:3)

你的问题在于with microservice gateway。这不符合你的想法。

microservice关键字实际上用于提示生成器应该在微服务上生成后端文件,并且应该在网关上使用正确的“URL路径前缀”生成相应的前端文件。这样,您可以为微服务和网关使用相同的jdl文件。在微服务上,关键字被忽略,但在网关上,它将阻止生成后端文件,并正确设置实体前端以调用/microservice/api

您想要的只是在网关上生成常规实体,因此只需删除with microservice gateway行。

如果您认为我们的文档应该在这方面得到改进,请向JHipster / JHipster.github.io提交PR。