Динамический ID для VIEW
Иногда, когда используется VIEW, особенно, собранный из множества таблиц, не всегда получается так, что у нас имеется уникальная колонка с ID.
Если нам нужно замапить на него JPA entity то нужно чтобы уникальный идентификатор всё-таки присутствовал.
Если у нас PostgreSQL то это можно сделать, добавив UUID в качестве "искусственного" поля ID:
create VIEW mysuperview as
select
(md5(random()::text || clock_timestamp()::text)::uuid)::text as id,
...
...
Обратите внимание, мы кастим всё это ещё и в "text" чтобы в JPA entity поле не было бы Object, а можно было использовать простой String:
@Id
@Column(name = "id")
public String getId() {
return id;
}