我有一个错误,我无法摆脱,但代码同时工作。
@NamedQuery(name="getDocteur", query="SELECT d FROM Clinique cli, IN (cli.docteurs) AS d WHERE cli.clinique_ID=:clinique_ID AND d.docteur_ID=:docteur_ID")
错误Eclipse给我的是:
状态字段路径“d.docteur_ID”无法解析为有效 类型。
我也遇到了同样的错误
@NamedQuery(name="validUsername", query="SELECT u FROM Clinique cli, IN (cli.users) AS u WHERE cli.clinique_ID=:clinique_ID AND u.username=:username AND u.password=:password")
User.java
...
@Column(name="PASSWORD", nullable=false)
@NotNull
@Size(min=8, max=8)
private String password;
Docteur.java
package com.jerabi.model;
import java.io.Serializable;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.List;
/**
* The persistent class for the docteur database table.
*
*/
@Entity
@Table(name="Docteur",
uniqueConstraints={@UniqueConstraint(columnNames={"clinique_Clinique_ID", "nom", "prenom"})}
)
public class Docteur implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="DOCTEUR_ID")
private Integer docteur_ID;
@Column(name="Nom", nullable=false)
@NotNull
@Size(min=1, max=40)
private String nom;
@Column(name="Prenom", nullable=false)
@NotNull
@Size(min=1, max=40)
private String prenom;
@ManyToOne(optional=false)
private Clinique clinique;
//bi-directional many-to-one association to Patient
@OneToMany(cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.DETACH}, orphanRemoval=false, mappedBy="docteur")
private List<Patient> patients;
public Docteur() {
patients = new ArrayList<Patient>();
}
public Integer getDocteur_ID() {
return this.docteur_ID;
}
public void setDocteur_ID(Integer docteurId) {
this.docteur_ID = docteurId;
}
public String getNom() {
return this.nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getPrenom() {
return this.prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom;
}
public List<Patient> getPatients() {
return this.patients;
}
public void setPatients(List<Patient> patients) {
this.patients = patients;
}
public Clinique getClinique() {
return clinique;
}
public void setClinique(Clinique clinique) {
this.clinique = clinique;
}
}
答案 0 :(得分:1)
尝试此查询,
SELECT d
FROM Clinique cli JOIN cli.docteurs d
WHERE cli.clinique_ID = :clinique_ID
AND d.docteur_ID = :docteur_ID