我正在使用EJB开发JavaEE应用程序,我有这两个实体:
@Entity
public class Utente implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private int cod_utente;
private String nome_utente;
private String morada_utente;
@Temporal(TemporalType.DATE)
private GregorianCalendar dnasc_utente;
private int tel_utente;
private List<GregorianCalendar> agenda;
@OneToMany(targetEntity=Entities.Prescricao.class,fetch=EAGER)
private List<Prescricao> lista_presc;
和
@Entity
public class FichaClinica implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private int cod_ficha;
@OneToOne
private Utente cod_utente;
@OneToMany(targetEntity=Entities.AtoEnfermagem.class,fetch=EAGER)
private List <AtoEnfermagem> lista_atos_enf;
@OneToMany(targetEntity=Entities.AtoMedico.class,fetch=EAGER)
private List <AtoMedico> lista_atos_medicos;
@OneToMany(targetEntity=Entities.Consulta.class,fetch=EAGER)
private List<Consulta> lista_consultas;
我想使用给定的 Utente 选择 FichaClinica ,所以我使用以下查询( em 是的EntityManager ):
FichaClinica fc=(FichaClinica)em.createQuery("select object(fc) from FichaClinica fc where fc.cod_utente like :cod").setParameter("cod",u).getResultList().get(0);
但这不起作用。发生错误:
语法错误:遇到“LIKE”
有人可以帮助我吗?
答案 0 :(得分:1)
如果你有一个非分离的 Utente 实例,并希望获得相应的 FichaClinica ,请考虑添加关系的反面以获得直接引用从类 Utente 到它。
如果要使用JPQL,则不能将与一起使用。使用 = :
select object(fc) from FichaClinica fc where fc.cod_utente = :cod