does anyone know how to use bitwise AND (&) as criteria for a JPA NamedQuery without having to use a @NamedNativeQuery?
I'm storing status bits in a field.
I'm using the following defs for an entity of a view:
@NamedQueries({
@NamedQuery(name="ViewProductsList.findAll", query="SELECT v FROM ViewProductsList v"),
@NamedQuery(name="ViewProductsList.findFeatured", query="SELECT v FROM ViewProductsList v WHERE v.statusId & 16"),
@NamedQuery(name="ViewProductsList.findBySubcategory", query="SELECT v ViewProductsList v WHERE v.subcatId IN (:subcatIds)"),
})
The first one works fine, but the second does not like the expression, I get the following:
18:02:13,528 DEBUG [DataNucleus.Query] - JPQL Single-String with "SELECT v FROM ViewProductsList v WHERE v.statusId & 16"
18:02:13,553 DEBUG [DataNucleus.Query] - JPQL Query : Compiling "SELECT v FROM ViewProductsList v WHERE v.statusId & 16"
>>ERROR: 'Portion of expression could not be parsed: & 16'
Using dev MySQL database and Google Cloud SQL in production, so it would have to work on both versions...
Any ideas?
UPDATED QUESTION:
When using a defined @NamedNativeQuery as follows:
@NamedNativeQuery(name = "ViewProductsList.findFeatured", query = "SELECT * FROM view_products_list v")
And calling it as follows:
Query query=em.createNativeQuery("ViewProductsList.findFeatured", ViewProductsList.class);
List<ViewProductsList> list = query.getResultList();
I get the following error:
java.lang.IllegalStateException: You cannot invoke getResultList/getSingleResult when the Query is an UPDATE/DELETE
at org.datanucleus.api.jpa.JPAQuery.getResultList(JPAQuery.java:161)
at cultivartehidroponia.ProductsServlet.doGet(ProductsServlet.java:81) ...
I have tried many variations of createNativeQuery examples with no success. Does anybody know of working native query examples using datanucleus?
Again, using a normal @NamedQuery with createNamedQuery works fine!
Thanks in advance!!!