У меня вопрос о том, как нам следует работать с базой данных в формате JPA при работе с переведенными таблицами.
Предположим, что у меня есть эти объекты:
class A {
@Id
@Column(name = "id", nullable = false)
private UUID id;
@OneToMany(mappedBy = "a")
private Set bSet = new HashSet();
@OneToMany(mappedBy = "a")
private Set translations = new HashSet();
\\ getters and setters
}
class ATranslation {
@Id
@Column(name = "id", nullable = false)
private UUID id;
@ManyToOne()
@JoinColumn(name = "a_id", nullable = false)
private A a;
@Column(name = "language_code")
private String languageCode;
@Column(name = "is_default")
private Boolean isDefault = Boolean.FALSE;
// Other specific fields (for example: name, title and e.t.c)
}
Класс B также имеет собственный перевод с определенными полями. Как мне справиться с этой структурой? Например, я хочу получить A по идентификатору со всеми B для запроса на конкретный язык, и если перевод для указанного языка не существует, я хочу получить язык по умолчанию. Как я могу это сделать?
Также предположим, что DTO, который я должен вернуть, должен выглядеть примерно так:
clas ADto {
private UUID id;
private String title;
private String name;
private Set bDtoSet = new LinkedHashSet();
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... es-via-jpa