Hej mam pytanie odnosnie EJB 3.0
dotyczace NamedQuery's
Tworze 2 rodzaje zapytań:
Native, z osobna klasa do mapowania wynikow:
- @NamedNativeQuery(name = "Query1Native", query = "SELECT DISTINCT c.companyName as ccn FROM Customers c, Order_Details od, Orders o where c.customerID = o.customerID and od.orderID=o.orderID and od.Quantity>12",resultClass = Mapping1.class),
- @NamedNativeQuery(name = "Query2Native", query = "SELECT CU.CompanyName as cun,CU.Country as cuc,sum(OD.Quantity)as Quan from Customers CU, Orders O, Order_Details OD,Products P where CU.customerID = O.customerID and O.OrderID = OD.OrderID and OD.ProductID = P.ProductID and P.UnitsInStock > 10 group by CU.CompanyName,CU.Country",resultClass = Mapping2.class)
Obydwa działaja bez zarzutu.
Natomiast chce rowniez stworzyc analogiczne(lub podobne) zapytania w EJB QL(do utrwalania danych uzywam Hibernate Persistance):
- @NamedQuery(name = "Query1", query = "SELECT DISTINCT c.companyName FROM Customers c,in(c.orders) o, in(o.order_details) od WHERE od.quantity > 12"),
- @NamedQuery(name = "Query2", query = "select c.companyName from Customers c, in(c.Orders) o, in(c.OrderDetails) od,Products p, in(OrderDetails) od1 where od.productId = od1.productId and od.orderId = od1.orderId and p.unitsInStock > 12")
i dostaje odpowiednio wyjatki:
org.hibernate.QueryException: could not resolve property: orders of: EJB3.Customers [SELECT DISTINCT c.companyName FROM EJB3.Customers c,in(c.orders) o, in(o.order_details) od WHERE od.quantity > 12]
at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:67)
at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:61)
...
org.hibernate.QueryException: could not resolve property: Orders of: EJB3.Customers [select c.companyName from EJB3.Customers c, in(c.Orders) o, in(c.OrderDetails) od,EJB3.Products p, in(OrderDetails) od1 where od.productId = od1.productId and od.orderId = od1.orderId and p.unitsInStock > 12]
...
Wydaje mi się ze jest to problem z odzwierciedleniem relacji Customers->Orders(Orders to osobna tabela w relacji C(1)-O(0,n))
Probowałem na kilka sposobów zmienic to zapytanie,ale kazdorazowo podczas deploymenty JBoss wyrzuca wyjatek...
Moze ktos podpowie mi w czym tkwi problem??