I am working with JSF 2.0, Primefaces 3.4, Oracle, NetBeans 7.2.1, and i got the following error:
ADVERTENCIA: Local Exception Stack:
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: ORA-00936: missing expression
Error Code: 936
Call: SELECT t1.OPT_ID, t1.OPT_ANT_FM_DET FROM SAE_PACIENTE t0, SAE_OPTOMETRIA t1 WHERE ((((t0.P_ID = ) AND (t0.P_IDENTIFICACION = ?)) AND (t0.P_TIPO_IDENTIFICACION = ?)) AND (t0.P_ID = t1.OPT_P_ID))
i have two beans SaeOptometria and SaePaciente; in SaeOPtometria i have this atribute that is the relationship with the SaePaciente bean:
@JoinColumn(name = "OPT_P_ID", referencedColumnName = "P_ID")
@ManyToOne
private SaePaciente optPId;
And also have the following namedquery:
@NamedQuery(name = "SaeOptometria.findByPaciente", query = "SELECT s FROM SaeOptometria s INNER JOIN s.optPId d WHERE d.pId=s.optPId AND d.pIdentificacion = :pIdentificacion AND d.pTipoIdentificacion = :pTIdentificacion"),
I am passing the parameters :pIdentificacion and :pTIdentificacion in the SaeOptometriaFacade file with the following code:
public List<SaeOptometria> consultaporIdYTI(String UIpIdentificacion, String UIpTipoIdentificacion){
Query query= em.createNamedQuery("SaeOptometria.findByPaciente");
query.setParameter("pIdentificacion", UIpIdentificacion);
query.setParameter("pTIdentificacion", UIpTipoIdentificacion);
List<SaeOptometria> SaeOptometriaList= query.getResultList();
return SaeOptometriaList;
}
I clarified that the parameters pIdentificacion and pTipoIdentificacion in the NamedQuery belong to SaePaciente bean:
@Id
@SequenceGenerator(name="SEQ1",sequenceName = "SAE_AINCR_PACIENTE",allocationSize=1)
@GeneratedValue(strategy=GenerationType.IDENTITY, generator="SEQ1")
@Basic(optional = false)
@NotNull
@Column(name = "P_ID")
private Integer pId;
@Size(max = 15)
@Column(name = "P_IDENTIFICACION")
private String pIdentificacion;
@Size(max = 20)
@Column(name = "P_TIPO_IDENTIFICACION")
private String pTipoIdentificacion;
why doesnt work?
thanks.