Код: Выделить всё
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Parent { ... }
< /code>
@Entity
@Subselect("select a,b,c from entity_a")
public class EntityA extends Parent { ... }
< /code>
@Entity
@Subselect("select a,b,c from entity_b")
public class EntityB extends Parent { ... }
< /code>
This does not work and I get the error: org.postgresql.util.PSQLException: ERROR: subquery in FROM must have an aliasОшибка не возникает с той же @subselect , но без использования наследования.
Я понимаю, что проблема Является ли, что использование наследования приводит к запросу с использованием Union All , как это (упрощено):
Код: Выделить всё
select *
from (select a, b, c
from entity_a)
union all
select *
from (select a, b, c
from entity_b)
< /code>
I tried adding an alias in the @SubselectЧто я попробовал:
Код: Выделить всё
@Subselect("(select a,b,c from entity_a) as x")
< /code>
@Subselect("(select a,b,c from entity_a) x")
< /code>
I also read that Postgres 16 made subquery aliases optional, but unfortunately I have to use Postgres 13 for the time being.
Here a person made @SubselectЕсть ли способ в любом случае сделать эту работу? Моей альтернативой было бы определить подэлексы как представления и ссылаться на них с помощью @table , но было бы неплохо, если бы это не было необходимы.
Подробнее здесь: https://stackoverflow.com/questions/794 ... version-16