Quando vou utilizar o parametro WHERE m.fk_computador=:pat and m.dataManut BETWEEN :start and :end ele dar o seguinte erro:
HTTP Status 500 - org.hibernate.PropertyAccessException: could not get a field value by reflection getter of pesistence.Computador.patrimonio
mas quando utilizo apenas o intervalo de data WHERE m.dataManut BETWEEN :start and :end ele funciona perfeitamente, gerando a minha lista. segue abaixo o metodo completo.
[code]public List buscarManutenir (String patrimonio, Date data1, Date data2) {
Session ses = getSession();
Query qr = ses.createQuery("from Manutenir m WHERE m.fk_computador=:pat and m.dataManut BETWEEN :start and :end" );
qr.setParameter("start", data1);
qr.setParameter("end", data2);
qr.setParameter("pat", patrimonio);
List<Manutenir> listaManutenir = qr.list();
return listaManutenir;
}[/code]
a minha duvida é saber se eu estou passando os parametro (fk_computador=:pat and) da forma correta
[code]@Entity
public class Manutenir implements Serializable { @Id @GeneratedValue(strategy=GenerationType.AUTO)
private Integer idManut; @Column
private Date dataManut;
private String atividades;
@ManyToOne //Relacionamento Muitos para Um
@JoinColumn(name="fk_computador", referencedColumnName="patrimonio")
private Computador fk_computador;
@ManyToOne //Relacionamento Muitos para Um
@JoinColumn(name="fk_tecnico", referencedColumnName="idUsuario")
private Tecnico fk_tecnico;[/code]
Ok, o problema é o seguinte:private Computador fk_computador;
Isso não é uma variável que armazena o ID e sim um objeto que armazena muitas coisas. Computador é uma classe, e você precisa acessar o método getId() dessa classe para ter acesso ao Id.
Então m.fk_computador precisa acessar o id, algo tipo m.fk_computador.id
Não sei como você nomeou seu id em computador, mas acho que agora deu para você entender o que precisa fazer.
[quote=romarcio]Ok, o problema é o seguinte:private Computador fk_computador;
Isso não é uma variável que armazena o ID e sim um objeto que armazena muitas coisas. Computador é uma classe, e você precisa acessar o método getId() dessa classe para ter acesso ao Id.
Então m.fk_computador precisa acessar o id, algo tipo m.fk_computador.id
Não sei como você nomeou seu id em computador, mas acho que agora deu para você entender o que precisa fazer.[/quote]
estou no projeto com o Kelvinpinho, obrigado cara …rodou direitinho.