Имеется следующая структура БД PostgreSQL:
CREATE TABLE a_type (
id INT4 PRIMARY KEY
);
CREATE TABLE a (
id INT8 PRIMARY KEY,
a_type_id INT4 NOT NULL REFERENCES a_type (id)
);
CREATE TABLE b_type (
id INT4 PRIMARY KEY
);
CREATE TABLE b (
id INT8 PRIMARY KEY,
b_type_id INT4 NOT NULL REFERENCES b_type (id)
);
CREATE TABLE c (
id INT8 PRIMARY KEY NOT NULL REFERENCES a_type (id) REFERENCES b_type (id)
);
Хотелось бы замаппить на доменные объекты в Java:
@Entity
interface A {
@Id
Long id;
@ManyToOne
@JoinColumn
AType aType;
}
@Entity
class AType {
@Id
Integer id;
}
@Entity
interface B {
@Id
Long id;
@ManyToOne
@JoinColumn
BType bType;
}
@Entity
class BType {
@Id
Integer id;
}
@Entity
class C implements A, B {
@Id
Long id;
@ManyToOne
@JoinColumn
AType aType;
@ManyToOne
@JoinColumn
BType bType;
}
Чтобы в Spring CRUD Repository можно было создать и использовать следующие репозитории:
interface ARepository extends CrudRepository<A, Long> {
}
interface BRepository extends CrudRepository<B, Long> {
}
interface CRepository extends CrudRepository<C, Long> {
}
То есть если существует в БД строка в таблице c
, то с таким же ID существуют объекты в таблицах a
и b
.
Прошу подсказать в какую сторону смотреть, чтобы разобраться с тем какие аннотации JPA использовать для реализации задуманного.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Добрый день! Пишу интеграцию с есиа по opendid connect на javaНазрел вопрос по проверки подписи маркера доступа/идентификации
Как в Java получить FolderlastModified()? Вариант рекурсивного просмотра каталога в глубину и взятие даты последнего файла не подходит, так как каталог...
Как указать относительный путь для embedded Firebird? Вот так не работает: jdbc:firebirdsql://localhost/examfdb