【问题标题】:EJB Queries with WHERE clause带有 WHERE 子句的 EJB 查询
【发布时间】:2015-01-10 11:33:35
【问题描述】:

我正在使用 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实体管理器):

FichaClinica fc=(FichaClinica)em.createQuery("select object(fc) from FichaClinica fc where fc.cod_utente like :cod").setParameter("cod",u).getResultList().get(0);

但这不起作用。发生错误:

语法错误:遇到“LIKE”

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: jakarta-ee ejb


    【解决方案1】:

    如果您有一个非分离的 Utente 实例,并且想要获取对应的 FichaClinica,请考虑添加关系的反面以便获得直接引用从类 Utente 到它。

    如果您想使用 JPQL,则不能将 like 用于实体。使用 =

    select object(fc) from FichaClinica fc where fc.cod_utente = :cod
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      • 2011-07-05
      • 2014-05-02
      相关资源
      最近更新 更多