Я выбор следующие столбцы с помощью MULTISELECT критериев APIJPA - java.lang.IllegalArgumentException: Атрибут [ProductName] нет в управляемом типа
Фрагмент кода
criteriaQuery.multiselect(root.get(MasterCat_.prodId),
joinProduct.get(ProductList_.prName).alias("productName"));
criteriaQuery.orderBy(criteriaBuilder.desc
(root.get(mywrapperclass.getOrderBy()));
В выше порядка по фрагменту кода, я отправляю productName
с клиента.
и в выражении конструктора У меня есть
public ProductListUtil(Long logId, String productName) {
this.logId = logId;
productName = productName;
}
Ошибка я получаю java.lang.IllegalArgumentException: The attribute [productName] is not present in the managed type
.
Как я могу это решить?
Исключение StackTrace
java.lang.IllegalArgumentException: Атрибут [ProductName] нет в управляемом типа [EntityTypeImpl @ 5185929: ProductList [javaType: класс test.entity.ProductList дескриптора: RelationalDescriptor (test.entity.ProductList -> [DatabaseTable (PRODUCT_LISTS)]), сопоставления: 8]]. at org.eclipse.persistence.internal.jpa.metamodel.ManagedTypeImpl.getAttribute (ManagedTypeImpl.java:148) at org.eclipse.persistence.internal.jpa.querydef.FromImpl.get (FromImpl.java:312) at test.service.ProductListService.getProductListsList (ProductListService.java:129) на test.service.ProductListService.getProductLists (ProductListService.java:101) на test.service.ProductListService.getProductLists (ProductListService.java:94) на солнце. reflect.NativeMethodAccessorImpl.invoke0 (Родной метод) на sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) на sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в java.lang.reflect.Method .invoke (метод .java: 597) в com.sun.jersey.spi.container.JavaMethodInvokerFactory $ 1.invoke (JavaMethodInvokerFactory.java:60)
Это не говорит, что в конструкторе нет аргумента ... он говорит, что в классе с этим именем нет атрибута. Здесь? –
@NeilStockton Spot on, спасибо тонну за указание. – user75ponic