Динамический 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;
}