Как мне написать отношения ниже трех сущностей? - PullRequest
0 голосов
/ 31 мая 2018

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

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

1 Ответ

0 голосов
/ 03 июля 2018

Привет @ChaitanyaChowdary Divi,

Как я понял, ваш поток такой,

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

Верно !!!

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

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

private 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
{"relationsType": "много-к-одному", "RelationsName": "специализация", "otherEntityName": "specialization", "otherEntityField": "id"},

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