在jhipster中向用户实体添加属性

时间:2016-03-29 15:51:29

标签: spring jhipster

我想向用户实体添加一些属性,当我搜索它时,我发现了一个类似的问题:

How to modify existing entity generated with jhipster?

当我按照这篇文章中的步骤进行操作时,我无法在@Roberto被提及的任何地方找到文件user.json

  

1)编辑代表你的实体的json文件(添加/删除字段,语法非常简单,如果需要对一般实体属性进行任何更改,请检查文件末尾,例如' fieldsContainOneToMany' ...),你会发现它:

     

<jhipster_root_folder>/.jhipster/entityName.json

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:9)

我认为最好的解决方案是@Pedro和@alcuvi(他们引用JHipster文档)提供的两种解决方案之间的妥协:

  1. 首先,创建一个&#34; ExtendedUser&#34;带有附加字段的实体(不要忘记使用git,你必须撤消/删除实体)。与&#34; User&#34;的一对一关系没有必要。

  2. 之后,您可以从&#34; ExtendedUser&#34;复制许多部分。到JHipster应用程序的其他部分:

    • Liquibase changelog列(也将它们添加到users.csv)
    • ExtendedUser.java→User.java和UserDTO.java
    • extendedUser-dialog。*→register.html / .controller.js和settings.html / .controller.js
  3. 调整AccountResource.java和UserService.java(如果使用它们,则调整UnitTests)。此步骤主要通过使用之前步骤中复制的getter和setter来完成。 JHipster文档(https://jhipster.github.io/tips/022_tip_registering_user_with_additional_information.html)在这里可能会有所帮助。

  4. 删除&#34; ExtendedUser&#34;实体(使用git,或手动,另请参阅:How to delete an entity after creating it using jhipster?

  5. *优点* 是:

    • 使用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”选项,您可以在其中设置这些字段的值并链接到所需的用户。

我认为这不是最好的解决方案......

enter image description here enter image description here

答案 3 :(得分:0)

继承如何?只需使用新字段扩展内置的User类即可。例如,public class ExtendedUser extends User。然后在代码中将User类替换为ExtendedUser。更新dto,服务等。您也可以在需要时使用类强制转换。有什么想法?