Запрос гибернации для получения данных другой пользовательской таблицы не работает - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь просто извлечь записи из таблицы по следующему сценарию: Пользователь: abc - это тот, с помощью которого я вхожу в свою базу данных, и у него есть права на выбор.Таблица, к которой я пытаюсь получить доступ, xyz.customer , пользователь БД xyz имеет эту таблицу customer.Ошибка, которую я получаю, заключается в том, что объект не найден.даже я четко упомянул мой класс в пакете сканирования.Я попытался сделать SqlResultSetMapping , а затем он сказал, что не найден снова.Я поместил его в другой класс сущности, который работает нормально, и он все еще сказал, что SqlResultSetMapping не найден.Мой код выглядит следующим образом:

Код, по которому я его вызываю, и выдает ошибку:

List<SampleClass> sampleClass=
            entityIBSManager.createNativeQuery("select * from xyz.customer","CustomerMapping").getResultList();

Код моего класса сущности:

@Entity
@Table(name = "CUSTOMER", catalog = "XYZ")
@NamedQuery(name = "SampleClass.findAll", query = "select p from SampleClass p")
@SqlResultSetMapping(
                     name = "CustomerMapping", 
                     entities = @EntityResult(
                         entityClass = SampleClass.class, 
                         fields = {
                             @FieldResult(name = "customerNo", column = "CUSTOMER_ID"),
                             @FieldResult(name = "countryCode", column = "COUNTRY_CODE"),
                             @FieldResult(name = "status", column = "STATUS")}))

public class SampleClass implements Serializable {

    @Id
    @Column(name="CUSTOMER_ID")
    private Long customerNo;
    @Id
    @Column(name="COUNTRY_CODE")
    private String countryCode;
    @Column(name="STATUS")
    private int status;

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public Long getCustomerNo() {
        return customerNo;
    }

    public void setCustomerNo(Long customerNo) {
        this.customerNo = customerNo;
    }

    public String getCountryCode() {
        return countryCode;
    }

    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }

    @Override
    public String toString() {
        return "PurgeCustomersIBS [customerNo=" + customerNo + ", countryCode=" + countryCode + ", status=" + status + "]";
    }
}

В моемТаблица БД У меня есть составное сочетание клавиш кода страны и номера клиента.и я попытался использовать прямой вызов для моего именованного запроса, и он выдает ошибку, что именованный запрос не найден.Заранее благодарю за помощь.

Вот моя трассировка стека

  07:57:12.006 [readTask_Worker-3] ERROR org.quartz.core.JobRunShell - Job DEFAULT.cSVFileJob threw an unhandled Exception: java.lang.IllegalArgumentException: No query defined for that name [PurgeCustomersIBS.findAll] at org.hibernate.jpa.spi.AbstractEntityManagerImpl.buildQueryFromName(AbstractEntityManagerImpl.java:753) ~[hibernate-entitymanager-5.0.11.Final.jar:5.0.11.Final] at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createNamedQuery(AbstractEntityManagerImpl.java:890) ~[hibernate-entitymanager-5.0.11.Final.jar:5.0.11.Final] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...