Ich hätte gerne eine Query die mir Products sucht die einen bestimmten String im Namen haben. Also wenn der Benutzer "schraube" eingibt soll eine Liste zurückgegeben werden mit Records die im Namen "schraube" enthalten. (Schrauben, Schraubenschlüssel...). Dazu habe ich folgendes gemacht:
:name ist der Parameter den der Benutzer eingibt.
In meiner ProductFacade mach ich:
Leider bekomme ich immer diese Exception:
Bin mir nicht sicher was mein Netbeans mir damit sagen will...
Java:
@Entity
@NamedQueries({
@NamedQuery(name="findByName",
query="select p from Product p where lower(p.name) like '%:name%'")
})
public class Product implements Serializable, Comparable<Product> {
...
:name ist der Parameter den der Benutzer eingibt.
In meiner ProductFacade mach ich:
Java:
public List<Product> findProduct(String product) {
return em.createNamedQuery("findByName", Product.class).setParameter("name", product).getResultList();
}
Leider bekomme ich immer diese Exception:
Java:
...
Caused by: java.lang.IllegalArgumentException: You have attempted to set a parameter value using a name of name that does not exist in the query string select p from Product p where lower(p.name) like '%:name%'.
Bin mir nicht sicher was mein Netbeans mir damit sagen will...