Pessoal,
Estou reestruturando uma classe que esta na seguinte situacao :
***************************************************************************
public class ManterItemOrcamentoMB implements PageMB, OperacaoConfirmavel,
CallbackableMB {
private static final long serialVersionUID = 4902643748803576282L;
private static final Logger LOG = LoggerFactory
.getLogger(ManterItemOrcamentoMB.class);
@EJB(name = "OrcamentoServiceBean/local")
private OrcamentoServiceLocal orcamentoService;
@EJB(name = "EnsaioServiceBean/local")
private EnsaioServiceLocal ensaioService;
@EJB(name = "AnaliseServiceBean/local")
private AnaliseServiceLocal analiseService;
@EJB(name = "PrecoPorMetodoServiceBean/local")
private PrecoPorMetodoServiceLocal precopormetodoservice;
private Orcamento orcamento;
private ItemOrcamento itemorcamento;
private ItemOrcamento itemAtual = new ItemOrcamentoColetavel();
getters e setters
******************************************************************************
@Entity
@Domain( { "Orcamento", "Coleta", "ExecucaoAnalise" })
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public abstract class ItemOrcamento extends EntidadeAuditavel {
private static final long serialVersionUID = -6498465583116772624L;
public static int MARGEM_DIAS_GERACAO_LAUDO = 2;
private String descricao;
@ManyToOne
private TipoAmostra tipoAmostra;
private String observacao;
private Integer numeroAmostras = 0;
/** Indica que o Item de Orcamento pode ser removido */
private boolean remocaoPermitida = true;
/** Multiplicidade necessária para audição */
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "ItemOrcamento_AnaliseContratada", joinColumns = @JoinColumn(name = "ItemOrcamento_id"), inverseJoinColumns = @JoinColumn(name = "AnaliseContratada_id"))
private List<AnaliseContratada> analisesContratadas = new ArrayList<AnaliseContratada>();
public Dinheiro getTotalPorAmostra() {
Map<Long, Dinheiro> metodosPrecificaveis = new HashMap <Long, Dinheiro>();
Map <Long, GruposDoMetodo> todosOsMetodosComPrecoPorGrupoEspec = new HashMap <Long, GruposDoMetodo>();
Dinheiro total = new Dinheiro(0.0D);
PrecoMetodoEspecificacao precMetEspec = new PrecoMetodoEspecificacao();
todosOsMetodosComPrecoPorGrupoEspec = precMetEspec.listaTodosMetodosDaAmostraComPrecoGrupo(analisesContratadas);
total = total.soma(precMetEspec.precoTotalDosMetodosPorGrupoDeEspec(todosOsMetodosComPrecoPorGrupoEspec));
for (AnaliseContratada analiseContratada : this.analisesContratadas) {
Metodo metodoAnalise = analiseContratada.getMetodo();
if (!todosOsMetodosComPrecoPorGrupoEspec.containsKey(metodoAnalise.getId())) {
if (!metodoAnalise.isPrecificavel()) {
total = total.soma(analiseContratada.getPreco());
} else if (!metodosPrecificaveis.containsKey(metodoAnalise.getId())) {
metodosPrecificaveis.put(metodoAnalise.getId(), metodoAnalise.getPreco());
total = total.soma(metodoAnalise.getPreco());
}
}
}
return total;
}
getters e setters
do jeito que esta esta carregando a lista normalmente.
@JoinTable(name = "ItemOrcamento_AnaliseContratada", joinColumns = @JoinColumn(name = "ItemOrcamento_id"), inverseJoinColumns = @JoinColumn(name = "AnaliseContratada_id"))
private List<AnaliseContratada> analisesContratadas = new ArrayList<AnaliseContratada>();
public Dinheiro getTotalPorAmostra() {
todosOsMetodosComPrecoPorGrupoEspec = precMetEspec.listaTodosMetodosDaAmostraComPrecoGrupo(analisesContratadas);
Minha modificacao:
public class ManterItemOrcamentoMB implements PageMB, OperacaoConfirmavel,
CallbackableMB {
private static final long serialVersionUID = 4902643748803576282L;
private static final Logger LOG = LoggerFactory
.getLogger(ManterItemOrcamentoMB.class);
@EJB(name = "OrcamentoServiceBean/local")
private OrcamentoServiceLocal orcamentoService;
@EJB(name = "EnsaioServiceBean/local")
private EnsaioServiceLocal ensaioService;
@EJB(name = "AnaliseServiceBean/local")
private AnaliseServiceLocal analiseService;
@EJB(name = "PrecoPorMetodoServiceBean/local")
private PrecoPorMetodoServiceLocal precopormetodoservice;
private Orcamento orcamento;
private ItemOrcamento itemorcamento;
private ItemOrcamento itemAtual = new ItemOrcamentoColetavel();
private ItemOrcamentoHelper itemAtual1 = new ItemOrcamentoHelper();
getters e setters
@Stateless
public class ItemOrcamentoHelper{
InitialContext ini;
private ItemOrcamento itemorcamento;
private Integer numeroAmostras = 0;
@Embedded
private AjusteFinanceiro ajusteFinanceiro = new AjusteFinanceiro();
private List<AnaliseContratada> analisesContratadas = new ArrayList<AnaliseContratada>();
public Dinheiro getTotalPorAmostra() {
try {
ini = new InitialContext();
Map<Long, Dinheiro> metodosPrecificaveis = new HashMap <Long, Dinheiro>();
Map <Long, GruposDoMetodo> todosOsMetodosComPrecoPorGrupoEspec = new HashMap <Long, GruposDoMetodo>();
Dinheiro total = new Dinheiro(0.0D);
PrecoPorMetodoServiceLocal PrecoPorMetodoBean = (PrecoPorMetodoServiceLocal)ini.lookup("PrecoPorMetodoServiceBean/local");
todosOsMetodosComPrecoPorGrupoEspec = listaTodosMetodosDaAmostraComPrecoGrupo(analisesContratadas);
total = total.soma(precoTotalDosMetodosPorGrupoDeEspec(todosOsMetodosComPrecoPorGrupoEspec));
Meu problema que a lista de analisesContratas esta vindo nulla
private List<AnaliseContratada> analisesContratadas = new ArrayList<AnaliseContratada>();