Как запихнуть данные в модель?

Есть 3 сущности:

1, Зона
2. Описание Зоны
3. Язык

Описание Зоны содержит id "Зона" и id "Язык".

мне нужно получить из Зоны объект Описание Зоны,
когда я достал по id Зону я могу передать в нее id Языка.

как мне замапить объекты если Зона не знает о Языках?
  • Вопрос задан
  • 697 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Замапить легко
@Entity
public class Zone {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToOne(mappedBy = "zone")
    private ZoneDescription description;

    // Геттеры и сеттеры не указаны для краткости
}

@Entity
public class ZoneDescription {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToOne
    private Zone zone;

    @ManyToOne(optional = false)
    private ZoneLanguage language;

    // Геттеры и сеттеры не указаны для краткости
}

@Entity
public class ZoneLanguage {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

/*  Раскоментировать, если нужна двунаправленная связь
    @OneToMany(mappedBy = "language")
    private Set<ZoneDescription> descriptions = new HashSet<>();
*/

    // Геттеры и сеттеры не указаны для краткости
}

И потом так же легко в прикладном коде
Zone zone = zoneRepository.getById(zoneId);
ZoneDescription description = zone.getDescription();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы