使用jHipster 4.14.4生成实体未默认添加last_modified_by等字段的咨询
关于jHipster 4.14.4实体未生成审计字段的解答
你完全没有搞错——jHipster确实支持last_modified_by、last_modified_date这类审计字段,但在4.x版本里,它们不会默认自动添加到实体中,需要你在生成实体时主动开启这个选项。
如何生成包含审计字段的实体
当你执行jhipster entity <你的实体名>命令时,生成器会进入交互式配置流程,其中会有一个类似这样的问题:
Do you want to add audit fields to this entity?
选择Yes之后,生成器就会自动在你的实体类和对应的数据库XML文件中添加created_by、created_date、last_modified_by、last_modified_date这些字段,同时实体类会自动继承jHipster提供的AbstractAuditingEntity基类,帮你处理好注解和字段逻辑。
如果已经生成了实体,怎么补加审计字段
如果你已经生成了实体但没选审计选项,有两种方式补加:
- 通过生成器更新:重新运行
jhipster entity <你的实体名>,选择更新现有实体(update existing entity),然后在审计字段的选项中选Yes,生成器会自动帮你更新实体类和数据库文件,不会丢失已有的字段配置。 - 手动添加:
- 实体类:让你的实体类继承
AbstractAuditingEntity,这个基类已经封装好了所有审计字段和对应的Spring Data JPA注解(@CreatedBy、@CreatedDate等);如果不想继承基类,也可以手动添加字段并标注这些注解。 - 数据库XML文件:手动添加对应的字段定义,比如:
<column name="created_by" type="varchar(50)"/> <column name="created_date" type="timestamp"/> <column name="last_modified_by" type="varchar(50)"/> <column name="last_modified_date" type="timestamp"/>
- 实体类:让你的实体类继承
这些审计字段对于离线应用的同步场景确实非常关键,能帮你精准判断数据的更新时间和操作人,用来处理冲突和同步逻辑再合适不过了。
内容的提问来源于stack exchange,提问作者Vincent Verbist
相关产品推荐
相关产品推荐

