JPA Ошибка компиляции запроса при использовании объектов Oracle в запросе - PullRequest
0 голосов
/ 27 июля 2011

Следующий запрос JPA не компилируется -

SELECT a FROM CUSTOMER a WHERE a.activeCustomer = 'N' AND a.customerInfo.city IN :cityName ORDER BY a.customerId

, где таблица CUSTOMER в базе данных Oracle имеет базовый тип - CUSTOMERINFO, который, в свою очередь, имеет различные значения, такие как - страна страны

Этот базовый тип CUSTOMERINFO расширен LOCALBUSINESSCUSTOMERINFO и MNCBUSINESSCUSTOMERINFO и некоторыми другими.

Я думаю, это может быть связано с тем, что когда я определяю столбец в моей сущности, я определяю его следующим образом -

@Entity
@Table(name = "CUSTOMER", schema = "DBA")
@Converter(name="CustomerInfoConvertor", converterClass=CustomerInfoConvertor.class)

public class Customer implements Serializable {

      @Basic
      @Convert("CustomerInfoConvertor")
      @Column(columnDefinition = "CUSTOMERINFO")
      private ICustomerInfo customerInfo;

}

Я пробовал этот запрос с использованием SQL, и он отлично работает, но с использованием JPA (JPQL) выдает ошибку компиляции.

Спасибо за помощь!

1 Ответ

0 голосов
/ 28 июля 2011

Вы обозначили свое customerInfo как базовое, поэтому оно является базовым в JPQL.

Столбец имеет тип объекта Object?

В EclipseLink 2.3 вы можете отобразить это какВстраиваемость и аннотация @Struct, а также использовать встроенное отображение от Заказчика.Есть ли в таблице клиентов другие столбцы или это таблица типов?Если это таблица типов, используйте @Struct для ее отображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...