Pessoal,
Importei a minha tabela que no meu banco estava assim :
CREATE TABLE prestesp
(
codprest integer NOT NULL, -- Codigo do Prestador
codadministradora integer, -- Codigo da Administradora
codespec character varying(3) NOT NULL, -- Codigo da Especialidade
diasretorno integer, -- Dias de Retorno
principal character varying(1), -- Especialidade Principal
permguia character varying(1), -- Permite Guia
mostraweb character varying(1), -- Mostra Especialidade no portal e guias medicos
numregistro character varying(20), -- Numero do registro
usucod character varying(4),
CONSTRAINT prestesp_codprest_codespec_pk PRIMARY KEY (codprest, codespec)
)
importei no netbeans essa tabela e gerou automaticamente duas entidades :
@Entity
@Table(name = "prestesp")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Prestesp.findAll", query = "SELECT p FROM Prestesp p"),
@NamedQuery(name = "Prestesp.findByCodprest", query = "SELECT p FROM Prestesp p WHERE p.prestespPK.codprest = :codprest"),
@NamedQuery(name = "Prestesp.findByCodadministradora", query = "SELECT p FROM Prestesp p WHERE p.codadministradora = :codadministradora"),
@NamedQuery(name = "Prestesp.findByCodespec", query = "SELECT p FROM Prestesp p WHERE p.prestespPK.codespec = :codespec"),
@NamedQuery(name = "Prestesp.findByDiasretorno", query = "SELECT p FROM Prestesp p WHERE p.diasretorno = :diasretorno"),
@NamedQuery(name = "Prestesp.findByPrincipal", query = "SELECT p FROM Prestesp p WHERE p.principal = :principal"),
@NamedQuery(name = "Prestesp.findByPermguia", query = "SELECT p FROM Prestesp p WHERE p.permguia = :permguia"),
@NamedQuery(name = "Prestesp.findByMostraweb", query = "SELECT p FROM Prestesp p WHERE p.mostraweb = :mostraweb"),
@NamedQuery(name = "Prestesp.findByNumregistro", query = "SELECT p FROM Prestesp p WHERE p.numregistro = :numregistro"),
@NamedQuery(name = "Prestesp.findByUsucod", query = "SELECT p FROM Prestesp p WHERE p.usucod = :usucod")})
public class Prestesp implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
protected PrestespPK prestespPK;
@Column(name = "codadministradora")
private Integer codadministradora;
@Column(name = "diasretorno")
private Integer diasretorno;
@Size(max = 1)
@Column(name = "principal")
private String principal;
@Size(max = 1)
@Column(name = "permguia")
private String permguia;
@Size(max = 1)
@Column(name = "mostraweb")
private String mostraweb;
@Size(max = 20)
@Column(name = "numregistro")
private String numregistro;
@Size(max = 4)
@Column(name = "usucod")
private String usucod;
public Prestesp() {
}
public Prestesp(PrestespPK prestespPK) {
this.prestespPK = prestespPK;
}
public Prestesp(int codprest, String codespec) {
this.prestespPK = new PrestespPK(codprest, codespec);
}
public PrestespPK getPrestespPK() {
return prestespPK;
}
public void setPrestespPK(PrestespPK prestespPK) {
this.prestespPK = prestespPK;
}
public Integer getCodadministradora() {
return codadministradora;
}
public void setCodadministradora(Integer codadministradora) {
this.codadministradora = codadministradora;
}
public Integer getDiasretorno() {
return diasretorno;
}
public void setDiasretorno(Integer diasretorno) {
this.diasretorno = diasretorno;
}
public String getPrincipal() {
return principal;
}
public void setPrincipal(String principal) {
this.principal = principal;
}
public String getPermguia() {
return permguia;
}
public void setPermguia(String permguia) {
this.permguia = permguia;
}
public String getMostraweb() {
return mostraweb;
}
public void setMostraweb(String mostraweb) {
this.mostraweb = mostraweb;
}
public String getNumregistro() {
return numregistro;
}
public void setNumregistro(String numregistro) {
this.numregistro = numregistro;
}
public String getUsucod() {
return usucod;
}
public void setUsucod(String usucod) {
this.usucod = usucod;
}
@Override
public int hashCode() {
int hash = 0;
hash += (prestespPK != null ? prestespPK.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Prestesp)) {
return false;
}
Prestesp other = (Prestesp) object;
if ((this.prestespPK == null && other.prestespPK != null) || (this.prestespPK != null && !this.prestespPK.equals(other.prestespPK))) {
return false;
}
return true;
}
@Override
public String toString() {
return "br.uniplan.modelo.planouni.Prestesp[ prestespPK=" + prestespPK + " ]";
}
}
***********************************************
@Embeddable
public class PrestespPK implements Serializable {
@Basic(optional = false)
@NotNull
@Column(name = "codprest")
private int codprest;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 3)
@Column(name = "codespec")
private String codespec;
public PrestespPK() {
}
public PrestespPK(int codprest, String codespec) {
this.codprest = codprest;
this.codespec = codespec;
}
public int getCodprest() {
return codprest;
}
public void setCodprest(int codprest) {
this.codprest = codprest;
}
public String getCodespec() {
return codespec;
}
public void setCodespec(String codespec) {
this.codespec = codespec;
}
@Override
public int hashCode() {
int hash = 0;
hash += (int) codprest;
hash += (codespec != null ? codespec.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof PrestespPK)) {
return false;
}
PrestespPK other = (PrestespPK) object;
if (this.codprest != other.codprest) {
return false;
}
if ((this.codespec == null && other.codespec != null) || (this.codespec != null && !this.codespec.equals(other.codespec))) {
return false;
}
return true;
}
@Override
public String toString() {
return "br.uniplan.modelo.planouni.PrestespPK[ codprest=" + codprest + ", codespec=" + codespec + " ]";
}
}
**************************
Estou fazendo o select no meu DAO.
public List<Object> prestadorespecialidade(Integer vcodigo) {
try {
String query = "select p.codprest, p.numregistro from Prestesp p ";
return (List<Object>) emAux.createQuery(query).getResultList();
}
catch (Throwable ex) {
System.err.println("failed.----" + ex);
throw new ExceptionInInitializerError(ex);
}
erro :
Exception Description: Error compiling the query [select p.codprest, p.numregistro from Prestesp p ], line 1, column 9: unknown state or association field [codprest] of class [br.uniplan.modelo.planouni.Prestesp].
at org.eclipse.persistence.exceptions.JPQLException.unknownAttribute(JPQLException.java:457)
at org.eclipse.persistence.internal.jpa.parsing.DotNode.validate(DotNode.java:87)
at org.eclipse.persistence.internal.jpa.parsing.SelectNode.validate(SelectNode.java:293)
at org.eclipse.persistence.internal.jpa.parsing.ParseTree.validate(ParseTree.java:201)
at org.eclipse.persistence.internal.jpa.parsing.ParseTree.validate(ParseTree.java:183)
como eu faço para fazer o select selecionando o codprest??