我试着用其中一个选项创建了一个JHipster应用程序:--跳过客户端。后来我也把Liquibase弄坏了。
然后我创建了一个测试条目,类似于:
entity Test {
id String,
hireDate ZonedDateTime
}我将其放入一个test.jh文件中,在终端上执行: jhipster import-jdl test.jh。
当我查看这个应用程序的Java源代码时,我发现了一个Test.java类,id被自动识别为一个主键,我相信:
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
@SequenceGenerator(name = "sequenceGenerator")
private Long id;但是hireDate被注释为:
@Column(name = "hire_date")
private ZonedDateTime hireDate;为什么会这样呢?
我在数据库中为这个实体创建了一个视图"Test“,并且列是"Id”和"HireDate“。
但是,通过自动添加@Column注释,列名(例如"hire_date“)在我看来并不存在。
我能解决这个问题吗?我这件事是与JHipster生成器有关还是与Spring有关?
还有另一个问题:
@Size(max = 100)
@Column(name = "jhi_type", length = 100)
private String type;要命名一个Java字段,"type“似乎没问题,但是JHipster为@Column制作了"jhi_type”
干杯
发布于 2017-11-08 18:11:28
这些是JHipster命名约定:列用蛇样例和java实体字段用camel-case。如果你用了Liquibase,这会很好的。
不能在生成器中配置此行为。
禁用清算库不会改变在数据库中创建一个不遵守JHipster命名约定的视图的事实。JHipster生成希望以这种方式命名列的代码。要么您遵守这些约定,要么手动修改生成的代码。
或者,您可以尝试jhispter-db-辅助模块,但是这个项目似乎已经被放弃了。
发布于 2021-06-21 13:39:40
不需要在jdl中定义id字段,默认情况下是免费的。
https://stackoverflow.com/questions/47186220
复制相似问题