JHipster-具有JDL的实体,具有意外@Column注释的Java实体类

JHipster-具有JDL的实体,具有意外@Column注释的Java实体类,jhipster,Jhipster,我尝试使用以下选项之一创建JHipster应用程序:--跳过客户端。 之后我还禁用了Liquibase 然后我创建了一个测试条目,类似于: entity Test { id String, hireDate ZonedDateTime } 我将其放入test.jh文件中,在终端上执行: jhipster导入jdl test.jh 当我查看应用程序的Java源代码时,我发现了一个Test.Java类,id被自动识别为主键,我相信: @Id @GeneratedValue(stra

我尝试使用以下选项之一创建JHipster应用程序:--跳过客户端。 之后我还禁用了Liquibase

然后我创建了一个测试条目,类似于:

entity Test {
    id String,
    hireDate ZonedDateTime
}
我将其放入test.jh文件中,在终端上执行: jhipster导入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 Boot有关

还有一个问题:

@Size(max = 100)
@Column(name = "jhi_type", length = 100)
private String type;
将Java字段命名为“type”似乎可以,但JHipster将@Column命名为“jhi_type”


干杯

以下是JHipster命名约定:列的snake大小写和java实体字段的camel大小写。如果你用了液化糖,这会很好用的

无法在生成器中配置此行为

禁用liquibase不会改变您在数据库中创建的视图不遵守JHipster命名约定的事实。JHipster生成的代码期望列以这种方式命名。要么遵守这些约定,要么手动修改生成的代码


或者,您也可以尝试一下,但这个项目似乎已经被放弃了。

不太确定我是否理解:当我执行jhipster import jdl时,它试图使用Liquibase?如果没有禁用Liquibase(我添加到application.yml include:no Liquibase以禁用它),那么实体Java类中的字段名将与JDL(hireDate)中定义的字段名相同,但也与@Column注释(hiredDate)中定义的字段名相同?因为我禁用了Liquibase,jhipster import jdl不能使用Liquibase,因此使用了jhipster命名约定,如您所述?