1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Soma com Hibernate

Amigos, sou iniciante em JPA e gostaria do apoio de vocês. Tenho 2 Classes (Anexo abaixo). Tenho uma DataTable em PrimeFaces e gostaria que nela tivesse o acumulador total. Para isso preciso que tenha um campo que contenha o somatório da outra tabela.

Em SQL eu faria :

SELECT Lote.id,
       Lote.dataInsercao,
       Lote.meta,
      SUM(Scale.acumulador),
       Lote.nomeDoLote
  FROM balanca.Lote
       left JOIN Scale ON (Scale.loteSelecionado_id = Lote.id)
GROUP BY Lote.nomeDoLote Order by

Mas estou començando a usar Hibernate e gostaria de fazer isso sem usar NativeQuery. Podem me ajudar ?

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.garten.entidades;

import java.io.Serializable;
import java.util.Calendar;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

/**
 *
 * @author Andersom
 */
@Entity
public class Scale {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", unique = true, nullable = false)
    private int id;
    private double acumulador;
    private Calendar dataInsercao = Calendar.getInstance();

    @ManyToOne
    Lote loteSelecionado;

    public Scale(double acumulador, Lote loteSelecionado) {
        this.acumulador = acumulador;
        this.loteSelecionado = loteSelecionado;
    }
    public Scale(){}

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public double getAcumulador() {
        return acumulador;
    }

    public void setAcumulador(double acumulador) {
        this.acumulador = acumulador;
    }

    public Calendar getDataInsercao() {
        return dataInsercao;
    }

    public void setDataInsercao(Calendar dataInsercao) {
        this.dataInsercao = dataInsercao;
    }

    public Lote getLoteSelecionado() {
        return loteSelecionado;
    }

    public void setLoteSelecionado(Lote loteSelecionado) {
        this.loteSelecionado = loteSelecionado;
    }


}
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.garten.entidades;

import java.util.Calendar;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Andersom
 */
@Entity
public class Lote {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", unique = true, nullable = false)
    private int id;


    private String nomeDoLote;

    @Temporal(TemporalType.TIMESTAMP)
    private Date dataInsercao = Calendar.getInstance().getTime();

    private double meta=0;

    public double getMeta() {
        return meta;
    }

    public void setMeta(double meta) {
        this.meta = meta;
    }

    public String getNomeDoLote() {
        return nomeDoLote;
    }

    public void setNomeDoLote(String nomeDoLote) {
        this.nomeDoLote = nomeDoLote;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Date getDataInsercao() {
        return dataInsercao;
    }

    @Override
    public String toString() {
        return "Lote{" + "id=" + id + ", nomeDoLote=" + nomeDoLote + ", dataInsercao=" + dataInsercao + '}';
    }
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags hibernate java-ee ou faça a sua própria pergunta.