HQL Com metodo

0 respostas
K

Boa tarde.

Tenho o Objeto a baixo.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entidades;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author GUILHERME
 */
@Entity
//@Table(name = "embarque", catalog = "malotes", schema = "public")
@Table(name = "embarque", schema = "PUBLIC")
@NamedQueries({@NamedQuery(name = "Embarque.findAll", query = "SELECT e FROM Embarque e"), @NamedQuery(name = "Embarque.findByNumeroEmbarque", query = "SELECT e FROM Embarque e WHERE e.numeroEmbarque = :numeroEmbarque"), @NamedQuery(name = "Embarque.findByNomeMotorista", query = "SELECT e FROM Embarque e WHERE e.nomeMotorista = :nomeMotorista"), @NamedQuery(name = "Embarque.findByNomeFrota", query = "SELECT e FROM Embarque e WHERE e.nomeFrota = :nomeFrota")})
public class Embarque implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "numero_embarque", nullable = false)
    private Integer numeroEmbarque;
    @Basic(optional = false)
    @Column(name = "nome_motorista", nullable = false, length = 50)
    private String nomeMotorista;
    @Basic(optional = false)
    @Column(name = "nome_frota", nullable = false, length = 50)
    private String nomeFrota;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "numeroEmbarque")
    private List<NotasFiscais> notasFiscaisCollection;

    public Embarque() {
    }

    public Embarque(Integer numeroEmbarque) {
        this.numeroEmbarque = numeroEmbarque;
    }

    public Embarque(Integer numeroEmbarque, String nomeMotorista, String nomeFrota) {
        this.numeroEmbarque = numeroEmbarque;
        this.nomeMotorista = nomeMotorista;
        this.nomeFrota = nomeFrota;
    }

    public Integer getNumeroEmbarque() {
        return numeroEmbarque;
    }

    public void setNumeroEmbarque(Integer numeroEmbarque) {
        this.numeroEmbarque = numeroEmbarque;
    }

    public String getNomeMotorista() {
        return nomeMotorista;
    }

    public void setNomeMotorista(String nomeMotorista) {
        this.nomeMotorista = nomeMotorista;
    }

    public String getNomeFrota() {
        return nomeFrota;
    }

    public void setNomeFrota(String nomeFrota) {
        this.nomeFrota = nomeFrota;
    }

    public List<NotasFiscais> getNotasFiscaisCollection() {
        return notasFiscaisCollection;
    }

    public void setNotasFiscaisCollection(List<NotasFiscais> notasFiscaisCollection) {
        this.notasFiscaisCollection = notasFiscaisCollection;
    }

    public int contaNumeroNotas() {
        return getNotasFiscaisCollection().size();
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (numeroEmbarque != null ? numeroEmbarque.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 Embarque)) {
            return false;
        }
        Embarque other = (Embarque) object;
        if ((this.numeroEmbarque == null && other.numeroEmbarque != null) || (this.numeroEmbarque != null && !this.numeroEmbarque.equals(other.numeroEmbarque))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entidades.Embarque[numeroEmbarque=" + numeroEmbarque + "]";
    }
    /**
     * @return the quantidadeNotasFiscais
     */
}

E quando tento rodar a minha consulta, da erro. Gostaria de chamar o metodo contaNumeroNotas() na consulta, mas não estou conseguindo.

Segue a consulta a baixo.

SELECT e FROM Embarque e where e.contaNumeroNotas > 0 and e.numeroEmbarque >= :embarqueInicial and e.numeroEmbarque <= :embarqueFinal

Tenho como chamar o metodo numa consulta HQL?

Criado 8 de maio de 2009
Respostas 0
Participantes 1