Как мне написать отношения для трех сущностей?

Если предположим, что у нас есть три объекта: UserProfile {firstname String lastname String}. Для вышеуказанного объекта первичный ключ будет сгенерирован автоматически, так же, как у нас есть другой объект объекта SomeTest {unittest String} объект Work{исправление String}

Для вышеуказанной сущности первичный ключ будет сгенерирован автоматически. Итак, теперь в сущности профиля пользователя у нас есть две записи пользователя, одна из которых является учеником, а другая - учителем, в некоторой тестовой сущности у нас есть одна тестовая запись, в которой есть ключ, так что теперь, как я могу создать отношение для добавления профиля пользователя (первичные ключи учащегося и учителя) и первичный ключ некоторого теста к рабочему объекту. Пожалуйста, не могли бы вы написать мне, как добавить первичные ключи профиля пользователя и SomeTest Entity в Work Entity? ans like (отношение OneToMany{}) и какое отношение это будет и почему?


person ChaitanyaChowdary Divi    schedule 31.05.2018    source источник
comment
Вы просто говорите о желании добавить внешний ключ к объекту в EF?   -  person Wurd    schedule 31.05.2018
comment
трудно понять, что вы пытаетесь сделать здесь. Лучше, если вы можете предоставить свой вариант использования на простом английском языке. Соответственно, мы можем помочь вам создать вашу доменную модель   -  person naren    schedule 31.05.2018
comment
привет Нарендер Сингх...   -  person ChaitanyaChowdary Divi    schedule 31.05.2018
comment
Если у нас есть 3 сущности, одна из них - взять пример, первая сущность   -  person ChaitanyaChowdary Divi    schedule 31.05.2018
comment
Если у вас есть 3 объекта, один из них — пример: первый объект — это объект UserProfile {firstname String, lastname String usertype Boolean} (тип пользователя — студент или учитель), а второй — объект UnitTest { test1 String}, а третий — … объект WorkOrder {revision String} .. теперь мой вопрос заключается в том, как создать отношения в jhipster, чтобы добавить идентификатор профиля пользователя (первичный идентификатор учителя и ученика) и идентификатор UnitTest в WorkOrder. Знаете ли вы отношения управления jhipster. Мне нужно создать такое отношение .Как вы можете создать? ты понимаешь?   -  person ChaitanyaChowdary Divi    schedule 31.05.2018


Ответы (1)


Здравствуйте @ChaitanyaChowdary Divi,

Насколько я понял, ваш поток такой,

UserProfile(userid(pk)) UnitTest(testid(pk)) WorkOrder(userid(fk-один ко многим), testid(fk-один к одному))

Верно!!!

Если это правильно, то вы должны следовать этому пути,

Jhipster предлагает три способа создания отношений.

  1. Во время создания файла JDL.
  2. Во время добавления нового объекта с помощью командной строки терминала.
  3. Выполните вручную, отредактировав существующий класс сущностей и таблицу журнала изменений.

Случай 1: однонаправленная связь

relationship ManyToOne {
  WorkOrder{userid} to UserProfile
}

Примечание. Если вы используете OneToMany (обратный порядок), необходимо определить имя поля родительской таблицы.

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

Вариант 2: добавить с помощью терминала — командная строка

yo jhipster:entity entityName
  • Добавьте необходимые поля
  • В конце он спросит об отношении. Определите имя имени таблицы и соответствующий столбец.
  • Когда он спросит об опции переопределения, выберите «Нет».

Случай 3: вручную добавить кодировку,

  • Добавить связь в файл Entity.

@OneToOne(сопоставленоBy = "UnitTest")

@JsonIgnore

приватный юниттест юниттест;

  • Внесите соответствующие изменения в 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" },

  • Выполните операцию очистки, сборки, запуска. На этот раз он получает ошибку журнала изменений. Скопируйте новый идентификатор журнала изменений. Перейдите в таблицу журнала изменений базы данных, выполните команду обновления и замените старый идентификатор новым.
  • Выполните операцию очистки, сборки, запуска.
person Dhwanil Patel    schedule 03.07.2018