ErickRAR 1 de nov. de 2012
Utilize a tag code para postar seu código. Esse erro ocorre porque você está tentando transformar uma String em Reservas.
Tente assim:
Criteria criteria = session.createCriteria(Reservas.class);
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.max("horaPrevista"));
criteria.setProjection(projectionList);
Reservas reserva = (Reserva)criteria.uniqueResult();
AdsMarcos 1 de nov. de 2012
ErickRAR, mesmo usando o código com você me enviou fica dando esse erro
java.lang.ClassCastException: java.lang.String cannot be cast to modelos.Reservas
vou enviar aqui minha classe modelo, o mapeamento e o método de busca:
classe modelo
package modelos ;
public class Reservas {
private long id ;
private String codigo ;
private String valor ;
private String cpf ;
private String fone ;
private String datareserva ;
private String horaPrevista ;
private String medicos ;
private String pacientes ;
private String funcionarios ;
private String procedimento ;
public long getId () {
return id ;
}
public void setId ( long id ) {
this . id = id ;
}
public String getCodigo () {
return codigo ;
}
public void setCodigo ( String codigo ) {
this . codigo = codigo ;
}
public String getValor () {
return valor ;
}
public void setValor ( String valor ) {
this . valor = valor ;
}
public String getCpf () {
return cpf ;
}
public void setCpf ( String cpf ) {
this . cpf = cpf ;
}
public String getFone () {
return fone ;
}
public void setFone ( String fone ) {
this . fone = fone ;
}
public String getDatareserva () {
return datareserva ;
}
public void setDatareserva ( String datareserva ) {
this . datareserva = datareserva ;
}
public String getMedicos () {
return medicos ;
}
public void setMedicos ( String medicos ) {
this . medicos = medicos ;
}
public String getPacientes () {
return pacientes ;
}
public void setPacientes ( String pacientes ) {
this . pacientes = pacientes ;
}
public String getFuncionarios () {
return funcionarios ;
}
public void setFuncionarios ( String funcionarios ) {
this . funcionarios = funcionarios ;
}
public String getProcedimento () {
return procedimento ;
}
public void setProcedimento ( String procedimento ) {
this . procedimento = procedimento ;
}
public String getHoraPrevista () {
return horaPrevista ;
}
public void setHoraPrevista ( String horaPrevista ) {
this . horaPrevista = horaPrevista ;
}
}
mapeamentos
<class name= "modelos.Reservas" table= "reserva" >
<id name= "id" column= "idReserva" >
<generator class= "increment" />
</id>
<property name= "codigo" column= "codigoReserva" />
<property name= "datareserva" column= "dataReserva" />
<property name= "cpf" column= "cpfPaciReserva" />
<property name= "valor" column= "valReserva" />
<property name= "fone" column= "foneReserva" />
<property name= "horaPrevista" column= "horaPrevistaReserva" />
<property name= "funcionarios" column= "funReserva" />
<property name= "medicos" column= "medReserva" />
<property name= "pacientes" column= "pacReserva" />
<property name= "procedimento" column= "procReserva" />
</class>
método do repositorio
public Reservas procurarReserva () {
sessao = HibernateUtil .getSession () ;
tx = sessao .beginTransaction () ;
Criteria criteria = sessao .createCriteria ( Reservas .class ) ;
ProjectionList projectionList = Projections .projectionList () ;
projectionList .add ( Projections .max ( "horaPrevista" )) ;
criteria .setProjection ( projectionList ) ;
Reservas reserva = ( Reservas ) criteria .uniqueResult () ;
return reserva ;
}
}
erickrar esse classe e a tabele que quero pesquisar,
AdsMarcos 1 de nov. de 2012
ErickRAR, esse é a pesquisa que queria fazer com hibernate
SELECT max(horaPrevistaReserva)FROM reserva
WHERE idReserva = (SELECT max(idReserva) FROM reserva);
em sql deu certo mas quando vai para hibernate/java da pau
AdsMarcos 5 de nov. de 2012
Olha onsegui buscar no banco o resultado que eu precisava
o problema ainda e mostra na tela o resultado fica dando esse erro:
java.lang.ClassCastException: java.lang.String cannot be cast to modelos.Reservas
at utilidades.TesteFachada.main(TesteFachada.java:40)
o método que usei para buscas e estar funcionando é esse:
public List < Reservas > procurarReserva () {
sessao = HibernateUtil .getSession () ;
tx = sessao .beginTransaction () ;
Criteria criteria = sessao .createCriteria ( Reservas .class ) ;
ProjectionList projectionList = Projections .projectionList () ;
projectionList .add ( Projections .max ( "horaPrevista" )) ;
criteria .setProjection ( projectionList ) ;
List reserva = ( List ) criteria .list () ;
return reserva ;
}