我想向用户实体添加一些属性,当我搜索它时,我发现了一个类似的问题:
How to modify existing entity generated with jhipster?
当我按照这篇文章中的步骤进行操作时,我无法在@Roberto被提及的任何地方找到文件user.json
1)编辑代表你的实体的json文件(添加/删除字段,语法非常简单,如果需要对一般实体属性进行任何更改,请检查文件末尾,例如' fieldsContainOneToMany' ...),你会发现它:
<jhipster_root_folder>/.jhipster/entityName.json
我该如何解决这个问题?
答案 0 :(得分:9)
我认为最好的解决方案是@Pedro和@alcuvi(他们引用JHipster文档)提供的两种解决方案之间的妥协:
首先,创建一个&#34; ExtendedUser&#34;带有附加字段的实体(不要忘记使用git,你必须撤消/删除实体)。与&#34; User&#34;的一对一关系没有必要。
之后,您可以从&#34; ExtendedUser&#34;复制许多部分。到JHipster应用程序的其他部分:
调整AccountResource.java和UserService.java(如果使用它们,则调整UnitTests)。此步骤主要通过使用之前步骤中复制的getter和setter来完成。 JHipster文档(https://jhipster.github.io/tips/022_tip_registering_user_with_additional_information.html)在这里可能会有所帮助。
删除&#34; ExtendedUser&#34;实体(使用git,或手动,另请参阅:How to delete an entity after creating it using jhipster?)
*优点* 是:
我希望这些信息将来会帮助其他开发者!
答案 1 :(得分:4)
用户实体是JHipster用来管理所有用户管理内容(如电子邮件,密码等)的实体,因此您无法找到User.json文件,因为这是一个自动生成的实体。这些.json文件仅在您运行A
。
为了向用户实体添加/删除字段,您必须手动执行此操作,这意味着编辑yo jhipster:entity <entityName>
,创建liquibase变更集并根据需要修改UI中的所有相关文件。
答案 2 :(得分:1)
jhipster(版本4)的官方文档中有一个关于此的条目。
https://jhipster.github.io/tips/022_tip_registering_user_with_additional_information.html
总结......
其手动解决方案。 建议的解决方案是创建一个实体,其中包含您要添加到用户的字段,并以一对一的关系链接到该字段。
可选地
如果使用JDL-Studio创建带有新字段的ExtendedUser,jhipsterimport-jdl命令将在实体菜单上创建“extendedUser”选项,您可以在其中设置这些字段的值并链接到所需的用户。
我认为这不是最好的解决方案......
答案 3 :(得分:0)
继承如何?只需使用新字段扩展内置的User
类即可。例如,public class ExtendedUser extends User
。然后在代码中将User
类替换为ExtendedUser
。更新dto,服务等。您也可以在需要时使用类强制转换。有什么想法?