如何写下三个实体的关系呢?

时间:2018-05-31 10:15:13

标签: angular entity-framework jhipster jhipster-registry

如果假设我们有三个实体    entity UserProfile {firstname String  lastname字符串 }  对于上述实体,主键将自动生成,与我们拥有另一个实体相同  实体SomeTest {     unittest字符串 }  实体工作{     校正字符串 }

对于上述实体的主键会自动生成,所以现在在用户配置文件实体中我们有两个用户记录,一个是学生,另一个是教师,在Some Test实体中我们有一个记录有密钥的测试记录,所以现在如何我可以创建关系以添加用户配置文件(学生和教师主键)和一些测试主键到工作实体。 请你能给我写这个关系来添加userprofile& SomeTest Entity工作实体的主键? ans喜欢(关系OneToMany {})以及它将会是什么关系以及为什么?

1 个答案:

答案 0 :(得分:0)

你好@ChaitanyaChowdary Divi,

据我了解,您的流程是这样的

UserProfile(userid(pk)) UnitTest(testid(pk)) WorkOrder(userid(fk-一对一),testid(fk-一对一))

对!!!

如果正确,那么您应该遵循这种方式,

Jhipster提供了三种生成关系的方法。

  1. 创建JDL文件时。
  2. 使用“终端”命令行添加新实体时。
  3. 通过编辑现有实体类和chanagelog表手动执行。

案例1:单向关系

relationship ManyToOne {
  WorkOrder{userid} to UserProfile
}

注意:如果使用OneToMany(反向顺序),则可以定义父表的字段名称。

relationship OneToOne {
  UnitTest{testid} to UserProfile{testid}
}

案例2:使用终端-命令行添加

yo jhipster:entity entityName
  • 添加必填字段
  • 最后询问关系 定义表名称和适当的列的名称
  • 询问覆盖选项时,选择“否”

情况3:手动添加编码,

  • 在实体文件中添加关系。
  

@OneToOne(mappedBy =“ UnitTest”)

     

@JsonIgnore

     

私有UnitTest unitTest;

  • 在DTO中进行适当的更改。
  • 在XML文件中添加列块。

    资源->配置-> liquibase->更改日志-> entity.xml

    <changeSet id="add specialization column" author="jhipster">
            <addColumn tableName="specialization">
                <column name="specialization_id" type="bigint">
                    <constraints nullable="false"></constraints>
                </column>
            </addColumn>
        </changeSet>
    
  • 也将此更改应用到JSON文件中。

  

/。jhipster / entity.json
      {                   “ relationshipType”:“多对一”,                   “ relationshipName”:“专业化”,                   “ otherEntityName”:“专业化”,                   “ otherEntityField”:“ id”               }

  • 执行Clean,Build,Run操作。 这次收到变更日志的错误,     复制新的变更日志ID     转到数据库更改日志表     执行更新命令并将旧ID替换为新ID。
  • 执行清理,构建,运行操作。