Java Persistence @NamedQueries Problem

BLR

Erfahrenes Mitglied
Hallo, ich hab angefangen mich mit Persistence zu beschäftigen und hab schon nen Problem^^

also ich möchte einen namen eingeben "peter"
und danach soll gesucht werden....

beim zweiten Query gibts nen Problem:

Code:
@NamedQueries(  
            {
                @NamedQuery(name= Projekt.FIND_ALL, query = "select p from Projekt p order by p.position"),
                @NamedQuery(name =  Projekt.FIND_BY_NAME, query = "select p from Projekt p where p.name = : mstrName")
            }
        )

Code:
  public static final String FIND_ALL = "Projekt.findAll";
public static final String FIND_BY_NAME = "Projekt.findByName";


Code:
@Id
@GeneratedValue(strategy = GenerationType.AUTO) //auto-increment
private Long id;
    
//Spalte Name
@Column(unique=true)//Darf nur ein mal geben in der Tabelle
 private String mstrName;
    
    
//Spalte Position
@Column(unique=true)// Darf nur ein mal geben in der Tabelle
private int position;


Der Aufruf ( in einer anderen Klasse)
Code:
 public Projekt findProjekt(String strname) throws Exception {
        List<Projekt> lstResutlList = null;
        try {

                   TypedQuery<Projekt> createNamedQuery = em.createNamedQuery(Projekt.FIND_BY_NAME, Projekt.class);

                    createNamedQuery.setParameter("mstrName", strname);

                    createNamedQuery.getResultList();


und die Fehlermeldung:


Exception Description: Error compiling the query [Projekt.findByName: select p from Projekt p where p.name =: mstrName], line 1, column 32: unknown state or association field [name] of class [modell.Projekt]..
Irgendwie erkennt er die Spatel "name" nicht, aber wenn sie sage "mstrName = : p.mstrName" kommt:

Error compiling the query [Projekt.findByName: select p from Projekt p where p.mstrName = : mstrName], line 1, column 45: unknown identification variable [mstrname]. The FROM clause of the query does not declare an identification variable [mstrname]..

irgendwie passt da was nicht...
Danke für jeden Tipp.
 
Zurück