我尝试使用以下选项之一创建JHipster应用程序: - skip-client。 之后我也禁用了Liquibase。
然后我创建了一个测试条目,类似于:
Client_Id
我把它放到test.jh文件中,在终端上执行: jhipster import-jdl test.jh
当我查看应用程序的Java源代码时,我发现了一个Test.java类,我认为id被自动识别为主键:
entity Test {
id String,
hireDate ZonedDateTime
}
但是,雇佣日期注释为:
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
@SequenceGenerator(name = "sequenceGenerator")
private Long id;
为什么?
我在我的数据库中为这个实体创建了一个“Test”视图,列也是“Id”和“HireDate”。
但是,通过自动添加@Column注释,我的视图中不存在例如“hire_date”的列名。
我能以某种方式解决这个问题吗?我这个与JHipster生成器相关的东西还是与Spring Boot有关?
还有另一个问题:
@Column(name = "hire_date")
private ZonedDateTime hireDate;
命名Java字段“type”似乎没问题,但JHipster为@Column制作了“jhi_type”
干杯
答案 0 :(得分:1)
这些是JHipster命名约定:用于列的snake-case和用于java实体字段的camel-case。如果您使用过Liquibase,这样就可以了。
您无法在生成器中配置此行为。
禁用liquibase不会改变您在数据库中创建不遵守JHipster命名约定的视图的事实。 JHipster生成的代码希望以这种方式命名列。您要么尊重这些约定,要么手动修改生成的代码。
或者,您可以尝试jhispter-db-helper module,但似乎这个项目已被放弃。
答案 1 :(得分:0)
无需在jdl中定义id字段,默认免费获取。