/* * * Copyright (c) 2013 - 2014 INT - National Institute of Technology & COPPE - Alberto Luiz Coimbra Institute - Graduate School and Research in Engineering. * See the file license.txt for copyright permission. * */ /** * package relativo a todas as classes de negocio. * Com as classes bean */ package modelo; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OrderBy; import javax.persistence.SequenceGenerator; import javax.persistence.Table; /** * Classe relativa ao bean que informa o consumo de recurso por modelo * (RECMODEL) * * @author dayse.arruda * * */ @NamedQueries( { @NamedQuery(name = "RecModel.recuperaListaDeRecModels", query = "select rm from RecModel rm " + "order by rm.id"), @NamedQuery(name = "RecModel.recuperaListaDeRecModelsComModelos", query = "select rm from RecModel rm " + "left outer join fetch rm.modelo " + "order by rm.id"), @NamedQuery(name = "RecModel.recuperaListaDeRecModelsComRecursoComModelos", query = "select rm from RecModel rm " + "left outer join fetch rm.recurso " + "order by rm.modelo.codModelo"), @NamedQuery(name = "RecModel.recuperaRecModelComModelo", query = "select rm from RecModel rm " + "left outer join fetch rm.modelo " + "where rm = ?"), @NamedQuery(name = "RecModel.recuperaRecModelComRecurso", query = "select rm from RecModel rm " + "left outer join fetch rm.recurso " + "where rm = ?"), @NamedQuery(name = "RecModel.RecuperaListaDeRecModelsPorCodModeloLike", query = "select distinct(rm) from RecModel rm " + "left outer join fetch rm.modelo modelo " + "where upper(modelo.codModelo) like '%' || upper(?) || '%' " + "order by modelo.codModelo "), @NamedQuery(name = "RecModel.recuperaListaDeRecModelsPorDescrModelo", query = "select distinct(rm) from RecModel rm " + "left outer join fetch rm.modelo modelo " + "where upper(modelo.descrModelo) like '%' || upper(?) || '%' " + "order by modelo.codModelo " ), @NamedQuery(name = "RecModel.RecuperaRecModelPorCodModelo", query = "select distinct(rm) from RecModel rm " + "left outer join fetch rm.modelo modelo " + "where modelo.codModelo = ? " + "order by modelo.codModelo "), @NamedQuery(name = "RecModel.recuperaRecModelPorRecursoEModelo", query = "select rm from RecModel rm " + "left outer join fetch rm.recurso " + "left outer join fetch rm.modelo " + "where rm.recurso = ? and rm.modelo = ?" ), @NamedQuery ( name = "RecModel.recuperaListaPaginadaDeRecModels", query = "select distinct (rm) from RecModel rm left outer join fetch rm.modelo modelo order by modelo.codModelo" ), @NamedQuery ( name = "RecModel.recuperaListaPaginadaDeRecModelsCount", query = "select count (distinct rm) from RecModel rm" ), @NamedQuery ( name = "RecModel.recuperaListaPaginadaDeRecModelsPorRecurso", query = "select distinct (rm) from RecModel rm " +" left outer join fetch rm.modelo modelo " + "left outer join fetch rm.recurso recurso " + "where recurso = ? " ), @NamedQuery ( name = "RecModel.recuperaListaPaginadaDeRecModelsPorRecursoCount", query = "select count(distinct rm)" + "from RecModel rm " + "left outer join rm.recurso recurso " ) }) @Entity @Table(name = "RECMODEL") @SequenceGenerator(name = "SEQUENCIA", sequenceName = "SEQ_RECMODEL", allocationSize = 1) public class RecModel implements Serializable { private static final long serialVersionUID = 1L; /** identificador de recModel */ private Long id; /** Consumo Unitario do Modelo para esse recurso */ private double consumoUnit; // Um recModel � relativo a um unico recurso private Recurso recurso; // Um recModel � relativo a um unico modelo private Modelo modelo; public RecModel() { } public RecModel(double consumoUnit, Recurso recurso, Modelo modelo) { this.consumoUnit = consumoUnit; this.recurso = recurso; this.modelo = modelo; } // ********* M�todos get/set ********* @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQUENCIA") @Column(name = "ID") public Long getId() { return id; } public void setId(Long id) { this.id = id; } public void setConsumoUnit(double consumoUnit) { this.consumoUnit = consumoUnit; } public double getConsumoUnit() { return consumoUnit; } // ********* M�todos para Associa��es ********* @ManyToOne(fetch = FetchType.LAZY) // Usa-se lazy normalmente para evitar acabar levando todo o banco @JoinColumn(name = "RECURSO_ID", nullable = false) public Recurso getRecurso() { return recurso; } public void setRecurso(Recurso recurso) { this.recurso = recurso; } @ManyToOne @JoinColumn(name = "MODELO_ID", nullable = false) @OrderBy("codModelo") public Modelo getModelo() { return modelo; } public void setModelo(Modelo modelo) { this.modelo = modelo; } }