У меня есть таблица MV_ULICE в схеме ADRESY. Однако в JPA я подключаюсь к базе данных (Oracle) с использованием другого пользователя, а затем ADRESY. Этот пользователь имеет привилегию доступ к таблицам из схемы ADRESY, поэтому в JPA не было никаких проблем с определением сущности, так как вы можете легко представить другую схему в определении сущности:JPA Собственный запрос к таблицам из другой схемы в Oracle
@Entity
@Table(name = "MV_ULICE", schema = "ADRESY")
public class PoiStreet {
...
Проблема началась, когда я хотел создать Native Query используя 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 «Таблица или представление не существует».
Я попытался chanign MV_ULICE к ADRESY.MV_ULICE
final String queryString = "SELECT * "
+ "FROM ADRESY.MV_ULICE streets " + ...
, но это не помогло.
У кого-нибудь есть опыт работы с собственными запросами на оракуле с разными схемами, а затем с пользователем, который обращается к базе данных? Пожалуйста, помогите :)
Можете ли вы абстрагировать логику перекрестной схемы в виде, так что вы просто получаете доступ к виду из «вашей» схемы? – davek
какой осуществление вы используете? – rochb
rok: Я использую Hibernate как поставщик JPA. davek: Те таблицы, о которых я вам говорил, уже есть на самом деле –