У меня есть таблица MV_ULICE в схеме ADRESY. Однако в JPA я подключаюсь к базе данных (Oracle), используя другого пользователя, чем ADRESY. Этот пользователь имеет право доступа к таблицам из схемы ADRESY, поэтому в JPA не было проблем с определением сущностей, поскольку вы легко можете указать другую схему в определении сущности:
@Entity
@Table(name = "MV_ULICE", schema = "ADRESY")
public class PoiStreet {
...
Проблема началась, когда я захотел создать собственный запрос с использованием JPA. Запрос выглядит так:
final String queryString = "SELECT * "
+ "FROM MV_ULICE streets "
+ "WHERE CONNECT_BY_ISLEAF = 1 AND streets.status != 'H' "
+ "CONNECT BY NOCYCLE PRIOR streets.sym_ul = streets.symulold "
+ "START WITH streets.sym_ul = 'ulica'";
Query query = getEntityManager().createNativeQuery(
queryString, poi.domain.entities.streets.PoiStreet.class);
И это не работает. Я просто получаю исключение из формы Oracle "Таблица или представление не существует".
Я попытался изменить MV_ULICE на ADRESY.MV_ULICE
final String queryString = "SELECT * "
+ "FROM ADRESY.MV_ULICE streets " + ...
но это не помогло.
Так есть ли у кого-нибудь опыт работы с собственными запросами на Oracle с различными схемами, чем у пользователя, который обращается к базе данных? Пожалуйста, помогите:)