cara, nao consegui ate agora descobrir o porque desse erro ... vou colocar o codigo de todas as classes envolvidadas nessa operacao, se algum puder me ajudar :/
vai ter muita coisa que nao eh util, mas seilá ... vou colocar as classes por completo aqui
ActAplicacao.java
public class ActAplicacao extends CrudBean<Aplicacao> {
private static final long serialVersionUID = -166869885179372607L;
private Aplicacao aplicacao;
private Aplicacao frmAplicacao;
private Set<Aplicacao> listaDados;
private String codeEntity;
private Set<Entidade> lstEntidade;
private Set<TipoAplicacao> lstTipoAplicacao;
private Set<NivelAplicacao> lstNivelAplicacao;
private Set<ModoInteracao> lstModoInteracao;
private Set<LinguagemApl> lstLinguagemApl;
private Set<BancoDadosApl> lstBancoDadosApl;
private Set<PlataformaApl> lstPlataformaApl;
private Set<StatusApl> lstStatusApl;
private Logger logger = Logger.getLogger(ActAplicacao.class.getName());
protected Long codEntidade;
final BusinessFactory factory = BusinessFactory.getInstance();
public ActAplicacao() {
super(BusinessFactory.getInstance().getNgcAplicacao(), Aplicacao.class);
}
private void popularComboEntidade() {
// recupera a sessao corrente
logger.info("Inicio: populando o combo das Entidades");
HttpSession session = ServletActionContext.getRequest().getSession(false);
// pega um atributo na sessao
String codigo = null;
if (session.getAttribute("codEntidade") != null) {
codigo = session.getAttribute("codEntidade").toString();
}
final NgcEntidade ngcEntidade = this.factory.getNgcEntidade();
Set<Entidade> orgaoSet;
final Entidade entidade = new Entidade();
if (codigo != null) {
entidade.setSeqEntidade(new Long(codigo));
}
final Map<String, Ordenacao> order = new HashMap<String, Ordenacao>();
order.put("orgao.deOrgao", Ordenacao.ASC);
try {
orgaoSet = ngcEntidade.listar(entidade, order, null, null);
this.lstEntidade = orgaoSet;
} catch (final Exception e) {
logger.error(e);
}
}
private void popularComboTipoAplicacao() {
logger.info("Inicio: populando o combo dos Tipos de Aplicacao");
final NgcTipoAplicacao ngcTipoAplicacao = this.factory.getNgcTipoAplicacao();
Set<TipoAplicacao> tipoAplSet;
final TipoAplicacao tipoApl = new TipoAplicacao();
final Map<String, Ordenacao> order1 = new HashMap<String, Ordenacao>();
order1.put("dscTipoAplTap", Ordenacao.ASC);
try {
tipoAplSet = ngcTipoAplicacao.listar(tipoApl, order1, null, null);
this.lstTipoAplicacao = tipoAplSet;
} catch (final Exception e) {
logger.error(e);
}
}
private void popularComboNivelAplicacao() {
logger.info("Inicio: populando o combo dos Niveis de Aplicacao");
final NgcNivelAplicacao ngcNivelAplicacao = this.factory.getNgcNivelAplicacao();
Set<NivelAplicacao> nivelAplSet;
final NivelAplicacao nivelApl = new NivelAplicacao();
final Map<String, Ordenacao> order1 = new HashMap<String, Ordenacao>();
order1.put("dscNivelAplNap", Ordenacao.ASC);
try {
nivelAplSet = ngcNivelAplicacao.listar(nivelApl, order1, null, null);
this.lstNivelAplicacao = nivelAplSet;
} catch (final Exception e) {
logger.error(e);
}
}
private void popularComboModoInteracao() {
logger.info("Inicio: populando o combo dos modos de Interacao");
final NgcModoInteracao ngcModoInteracao = this.factory.getNgcModoInteracao();
Set<ModoInteracao> modoIntSet;
final ModoInteracao modoInt = new ModoInteracao();
final Map<String, Ordenacao> order1 = new HashMap<String, Ordenacao>();
order1.put("dscModoInteracaoMin", Ordenacao.ASC);
try {
modoIntSet = ngcModoInteracao.listar(modoInt, order1, null, null);
this.lstModoInteracao = modoIntSet;
} catch (final Exception e) {
logger.error(e);
}
}
private void popularComboLinguagemApl() {
logger.info("Inicio: populando o combo das Linguagens");
final NgcLinguagemApl ngcLinguagemApl = this.factory.getNgcLinguagemApl();
Set<LinguagemApl> linguagemAplSet;
final LinguagemApl linguagemApl = new LinguagemApl();
final Map<String, Ordenacao> order1 = new HashMap<String, Ordenacao>();
order1.put("dscLinguagemLin", Ordenacao.ASC);
try {
linguagemAplSet = ngcLinguagemApl.listar(linguagemApl, order1, null, null);
this.lstLinguagemApl = linguagemAplSet;
} catch (final Exception e) {
logger.error(e);
}
}
private void popularComboBancoDadosApl() {
logger.info("Inicio: populando o combo dos Bancos de Dados");
final NgcBancoDadosApl ngcBancoDadosApl = this.factory.getNgcBancoDadosApl();
Set<BancoDadosApl> bancoDadosAplSet;
final BancoDadosApl bancoDadosApl = new BancoDadosApl();
final Map<String, Ordenacao> order1 = new HashMap<String, Ordenacao>();
order1.put("dscBancoDadosBda", Ordenacao.ASC);
try {
bancoDadosAplSet = ngcBancoDadosApl.listar(bancoDadosApl, order1, null, null);
this.lstBancoDadosApl = bancoDadosAplSet;
} catch (final Exception e) {
logger.error(e);
}
}
private void popularComboPlataformaApl() {
logger.info("Inicio: populando o combo das Plataformas");
final NgcPlataformaApl ngcPlataformaApl = this.factory.getNgcPlataformaApl();
Set<PlataformaApl> plataformaAplSet;
final PlataformaApl plataformaApl = new PlataformaApl();
final Map<String, Ordenacao> order1 = new HashMap<String, Ordenacao>();
order1.put("dscPlataformaAplicPap", Ordenacao.ASC);
try {
plataformaAplSet = ngcPlataformaApl.listar(plataformaApl, order1, null, null);
this.lstPlataformaApl = plataformaAplSet;
} catch (final Exception e) {
logger.error(e);
}
}
private void popularComboStatusApl() {
logger.info("Inicio: populando o combo de Status");
final NgcStatusApl ngcStatusApl = this.factory.getNgcStatusApl();
Set<StatusApl> statusAplSet;
final StatusApl statusApl = new StatusApl();
final Map<String, Ordenacao> order1 = new HashMap<String, Ordenacao>();
order1.put("dscStatusAplSap", Ordenacao.ASC);
try {
statusAplSet = ngcStatusApl.listar(statusApl, order1, null, null);
this.lstStatusApl = statusAplSet;
} catch (final Exception e) {
logger.error(e);
}
}
@Override
protected void getParametros() throws Exception {
this.listaDados = super.lstDados;
this.aplicacao = super.entity;
/*
if (aplicacao != null) {
codEntidade = aplicacao.getEntidade().getSeqEntidade();
}*/
}
@Override
protected void preencherListas() throws Exception {
this.popularComboEntidade();
this.popularComboTipoAplicacao();
this.popularComboNivelAplicacao();
this.popularComboModoInteracao();
this.popularComboLinguagemApl();
this.popularComboBancoDadosApl();
this.popularComboPlataformaApl();
this.popularComboStatusApl();
}
@Override
protected void setParametros() throws Exception {
if (this.aplicacao != null) {
final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
this.aplicacao.setUsuario(new Long(1));
if (this.codeEntity == null && this.aplicacao.getSeqAplicacao() == null) {
this.aplicacao.setDatCadastroApl((sdf.parse(sdf.format(new Date()))));
} else if (this.aplicacao.getSeqAplicacao() != null) {
this.aplicacao.setDatAlteracaoApl((sdf.parse(sdf.format(new Date()))));
}
/*
* Codigo necessario para gravar valores nulos nas combobox
*/
if (aplicacao.getModoInteracao() != null) {
if (aplicacao.getModoInteracao().getSeqModoInteracao() != null && aplicacao.getModoInteracao().getSeqModoInteracao() == -1) {
aplicacao.setModoInteracao(null);
}
}
if (aplicacao.getNivelAplicacao() != null) {
if (aplicacao.getNivelAplicacao().getSeqNivelAplicacao() != null && aplicacao.getNivelAplicacao().getSeqNivelAplicacao() == -1) {
aplicacao.setNivelAplicacao(null);
}
}
if (aplicacao.getTipoAplicacao() != null) {
if (aplicacao.getTipoAplicacao().getSeqTipoAplicacao() != null && aplicacao.getTipoAplicacao().getSeqTipoAplicacao() == -1) {
aplicacao.setTipoAplicacao(null);
}
}
if (aplicacao.getLinguagemApl() != null) {
if (aplicacao.getLinguagemApl().getSeqLinguagem() != null && aplicacao.getLinguagemApl().getSeqLinguagem() == -1) {
aplicacao.setLinguagemApl(null);
}
}
if (aplicacao.getBancoDadosApl() != null) {
if (aplicacao.getBancoDadosApl().getSeqBancoDados() != null && aplicacao.getBancoDadosApl().getSeqBancoDados() == -1) {
aplicacao.setBancoDadosApl(null);
}
}
if (aplicacao.getPlataformaApl() != null) {
if (aplicacao.getPlataformaApl().getSeqPlataforma() != null && aplicacao.getPlataformaApl().getSeqPlataforma() == -1) {
aplicacao.setPlataformaApl(null);
}
}
if (aplicacao.getStatusApl() != null) {
if (aplicacao.getStatusApl().getSeqStatus() != null && aplicacao.getStatusApl().getSeqStatus() == -1) {
aplicacao.setStatusApl(null);
}
}
}
super.codEntity = this.getCodEntity();
super.entity = this.getAplicacao();
super.frmEntity = this.getFrmAplicacao();
/*
final String parameter = ServletActionContext.getRequest().getParameter(
"aplicacao.entidade.seqEntidade");
if (parameter != null) {
codEntidade = new Long(parameter);
}*/
//ActionContext.getContext().getSession();
// recupera a sessao corrente
HttpSession session = ServletActionContext.getRequest().getSession(false);
// seta um atributo na sessao
if (this.aplicacao != null && session.getAttribute("codEntidade") == null) {
if (aplicacao.getEntidade() == null) {
} else {
session.setAttribute("codEntidade", aplicacao.getEntidade().getSeqEntidade());
}
// recupera um objeto da sessao
//Object object = session.getAttribute("attributeName");
}
}
/**
* M?todo de pegar a propriedade do aplicacao.
*
*
* @return o valor do campo aplicacao.
*/
public Aplicacao getAplicacao() {
return this.aplicacao;
}
/**
* M?todo para setar a propriedade do aplicacao.
*
* @param aplicacao
* valor que ser? setado no campo: aplicacao.
*/
public void setAplicacao(final Aplicacao aplicacao) {
this.aplicacao = aplicacao;
}
/**
* M?todo de pegar a propriedade do codEntity.
*
*
* @return o valor do campo codEntity.
*/
public String getCodEntity() {
return this.codeEntity;
}
/**
* M?todo para setar a propriedade do codEntity.
*
* @param codEntity
* valor que ser? setado no campo: codEntity.
*/
public void setCodEntity(final String codEntity) {
this.codeEntity = codEntity;
}
/**
* M?todo de pegar a propriedade do frmAplicacao.
*
*
* @return o valor do campo frmAplicacao.
*/
public Aplicacao getFrmAplicacao() {
return this.frmAplicacao;
}
/**
* M?todo para setar a propriedade do frmAplicacao.
*
* @param frmAplicacao
* valor que ser? setado no campo: frmAplicacao.
*/
public void setFrmAplicacao(final Aplicacao frmAplicacao) {
this.frmAplicacao = frmAplicacao;
}
/**
* M?todo de pegar a propriedade do lstDados.
*
*
* @return o valor do campo lstDados.
*/
public Set<Aplicacao> getLstDados() {
return this.listaDados;
}
/**
* M?todo para setar a propriedade do lstDados.
*
* @param lstDados
* valor que ser? setado no campo: lstDados.
*/
public void setLstDados(final Set<Aplicacao> lstDados) {
this.listaDados = lstDados;
}
/**
* M?todo de pegar a propriedade do lstEntidade.
*
*
* @return o valor do campo lstEntidade.
*/
public Set<Entidade> getLstEntidade() {
return this.lstEntidade;
}
/**
* M?todo para setar a propriedade do lstEntidade.
*
* @param lstEntidade
* valor que ser? setado no campo: lstEntidade.
*/
public void setLstEntidade(final Set<Entidade> lstEntidade) {
this.lstEntidade = lstEntidade;
}
/**
* M?todo de pegar a propriedade do lstModoInteracao.
*
*
* @return o valor do campo lstModoInteracao.
*/
public Set<ModoInteracao> getLstModoInteracao() {
return this.lstModoInteracao;
}
/**
* M?todo para setar a propriedade do lstModoInteracao.
*
* @param lstModoInteracao
* valor que ser? setado no campo: lstModoInteracao.
*/
public void setLstModoInteracao(final Set<ModoInteracao> lstModoInteracao) {
this.lstModoInteracao = lstModoInteracao;
}
/**
* M?todo de pegar a propriedade do lstNivelAplicacao.
*
*
* @return o valor do campo lstNivelAplicacao.
*/
public Set<NivelAplicacao> getLstNivelAplicacao() {
return this.lstNivelAplicacao;
}
/**
* M?todo para setar a propriedade do lstNivelAplicacao.
*
* @param lstNivelAplicacao
* valor que ser? setado no campo: lstNivelAplicacao.
*/
public void setLstNivelAplicacao(final Set<NivelAplicacao> lstNivelAplicacao) {
this.lstNivelAplicacao = lstNivelAplicacao;
}
/**
* M?todo de pegar a propriedade do lstTipoAplicacao.
*
*
* @return o valor do campo lstTipoAplicacao.
*/
public Set<TipoAplicacao> getLstTipoAplicacao() {
return this.lstTipoAplicacao;
}
/**
* M?todo para setar a propriedade do lstTipoAplicacao.
*
* @param lstTipoAplicacao
* valor que ser? setado no campo: lstTipoAplicacao.
*/
public void setLstTipoAplicacao(final Set<TipoAplicacao> lstTipoAplicacao) {
this.lstTipoAplicacao = lstTipoAplicacao;
}
/**
*
* @return SUCESS caso relatorio seja gerado com sucesso
* @throws java.lang.Exception
*/
public String gerarRelatorio() throws Exception {
Character recurso = null;
final String parameter = ServletActionContext.getRequest().getParameter(
"frmAplicacao.entidade.orgao.deSigla");
final String parameter2 = ServletActionContext.getRequest().getParameter(
"frmAplicacao.dscTipoRecursoApl");
if ( (parameter2 != null) && !(parameter2.equals("")) ) {
recurso = new Character(parameter2.charAt(0));
}
if (this.frmAplicacao == null) {
this.frmAplicacao = new Aplicacao();
final Orgao orgao = new Orgao();
orgao.setDeSigla(parameter);
final Entidade entidade = new Entidade();
entidade.setOrgao(orgao);
this.frmAplicacao.setEntidade(entidade);
this.frmAplicacao.setDscTipoRecursoApl(recurso);
}
final Map<String, Ordenacao> order = new HashMap<String, Ordenacao>();
order.put("entidade.orgao.deSigla", Ordenacao.ASC);
this.setLstDados(BusinessFactory.getInstance().getNgcAplicacao().listar(
this.frmAplicacao, order, null, null));
return SUCCESS;
}
public Set<BancoDadosApl> getLstBancoDadosApl() {
return lstBancoDadosApl;
}
public void setLstBancoDadosApl(Set<BancoDadosApl> lstBancoDadosApl) {
this.lstBancoDadosApl = lstBancoDadosApl;
}
public Set<LinguagemApl> getLstLinguagemApl() {
return lstLinguagemApl;
}
public void setLstLinguagemApl(Set<LinguagemApl> lstLinguagemApl) {
this.lstLinguagemApl = lstLinguagemApl;
}
public Set<PlataformaApl> getLstPlataformaApl() {
return lstPlataformaApl;
}
public void setLstPlataformaApl(Set<PlataformaApl> lstPlataformaApl) {
this.lstPlataformaApl = lstPlataformaApl;
}
public Set<StatusApl> getLstStatusApl() {
return lstStatusApl;
}
public void setLstStatusApl(Set<StatusApl> lstStatusApl) {
this.lstStatusApl = lstStatusApl;
}
@Override
public void validate() {
super.validate();
try {
if (aplicacao != null) {
preencherListas();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
BusinessFactory.java
public final class BusinessFactory {
private static BusinessFactory factory;
private NgcEntidade ngcEntidade;
private NgcNecessidade ngcNecessidade;
private NgcOrgao ngcOrgao;
private NgcOrcamento ngcOrcamento;
private NgcColaborador ngcColaborador;
private NgcProduto ngcProduto;
private NgcTipoHardware ngcTipoHardware;
private NgcHardware ngcHardware;
private NgcSoftware ngcSoftware;
private NgcTipoSoftware ngcTipoSoftware;
private NgcTipoAplicacao ngcTipoAplicacao;
private NgcNivelAplicacao ngcNivelAplicacao;
private NgcModoInteracao ngcModoInteracao;
private NgcAplicacao ngcAplicacao;
private NgcPlataforma ngcPlataforma;
private NgcServicoInternet ngcServicoInternet;
private NgcMetodologia ngcMetodologia;
private NgcSistemaOperacional ngcSistemaOperacional;
private NgcRedeLan ngcRedeLan;
private NgcRedeWan ngcRedeWan;
private NgcContrato ngcContrato;
private NgcSituacaoOrgao ngcSituacaoOrgao;
private NgcProjeto ngcProjeto;
private NgcSituacaoProjeto ngcSituacaoProjeto;
private NgcNivelAtuacao ngcNivelAtuacao;
private NgcTipoVinculo ngcTipoVinculo;
private NgcTipoTreinamento ngcTipoTreinamento;
private NgcRecursosHumanos ngcRecursosHumanos;
private NgcCusto ngcCusto;
private NgcSugestao ngcSugestao;
private NgcLinguagemApl ngcLinguagemApl;
private NgcBancoDadosApl ngcBancoDadosApl;
private NgcPlataformaApl ngcPlataformaApl;
private NgcStatusApl ngcStatusApl;
//private Orgao orgao;
/**
*
* Construtor da Classe.
*/
private BusinessFactory() {
}
/**
*
* @return Instância da fábrica de serviços.
*/
public static BusinessFactory getInstance() {
if (factory == null) {
synchronized (BusinessFactory.class) {
factory = new BusinessFactory();
}
}
return factory;
}
/**
* Método de pegar a propriedade do ngcEntidade.
*
* @return o valor do campo ngcEntidade.
*/
public NgcEntidade getNgcEntidade() {
if (ngcEntidade == null) {
ngcEntidade = new NgcEntidadeBean();
}
return ngcEntidade;
}
/**
* Método de pegar a propriedade do ngcNecessidade.
*
* @return o valor do campo ngcNecessidade.
*/
public NgcNecessidade getNgcNecessidade() {
if (ngcNecessidade == null) {
ngcNecessidade = new NgcNecessidadeBean();
}
return ngcNecessidade;
}
/**
* Método de pegar a propriedade do ngcOrgao.
*
* @return o valor do campo ngcOrgao.
*/
public NgcOrgao getNgcOrgao() {
if (ngcOrgao == null) {
ngcOrgao = new NgcOrgaoBean();
}
return ngcOrgao;
}
public NgcOrcamento getNgcOrcamento() {
if (ngcOrcamento == null) {
ngcOrcamento = new NgcOrcamentoBean();
}
return ngcOrcamento;
}
public NgcColaborador getNgcColaborador() {
if (ngcColaborador == null) {
ngcColaborador = new NgcColaboradorBean();
}
return ngcColaborador;
}
public NgcProduto getNgcProduto() {
if (ngcProduto == null) {
ngcProduto = new NgcProdutoBean();
}
return ngcProduto;
}
public NgcTipoHardware getNgcTipoHardware() {
if (ngcTipoHardware == null) {
ngcTipoHardware = new NgcTipoHardwareBean();
}
return ngcTipoHardware;
}
public NgcHardware getNgcHardware() {
if (ngcHardware == null) {
ngcHardware = new NgcHardwareBean();
}
return ngcHardware;
}
public NgcTipoSoftware getNgcTipoSoftware() {
if (ngcTipoSoftware == null) {
ngcTipoSoftware = new NgcTipoSoftwareBean();
}
return ngcTipoSoftware;
}
public NgcSoftware getNgcSoftware() {
if (ngcSoftware == null) {
ngcSoftware = new NgcSoftwareBean();
}
return ngcSoftware;
}
public NgcTipoAplicacao getNgcTipoAplicacao() {
if (ngcTipoAplicacao == null) {
ngcTipoAplicacao = new NgcTipoAplicacaoBean();
}
return ngcTipoAplicacao;
}
public NgcNivelAplicacao getNgcNivelAplicacao() {
if (ngcNivelAplicacao == null) {
ngcNivelAplicacao = new NgcNivelAplicacaoBean();
}
return ngcNivelAplicacao;
}
public NgcModoInteracao getNgcModoInteracao() {
if (ngcModoInteracao == null) {
ngcModoInteracao = new NgcModoInteracaoBean();
}
return ngcModoInteracao;
}
public NgcAplicacao getNgcAplicacao() {
if (ngcAplicacao == null) {
ngcAplicacao = new NgcAplicacaoBean();
}
return ngcAplicacao;
}
public NgcPlataforma getNgcPlataforma() {
if (ngcPlataforma == null) {
ngcPlataforma = new NgcPlataformaBean();
}
return ngcPlataforma;
}
public NgcServicoInternet getNgcServicoInternet() {
if (ngcServicoInternet == null) {
ngcServicoInternet = new NgcServicoInternetBean();
}
return ngcServicoInternet;
}
public NgcMetodologia getNgcMetodologia() {
if (ngcMetodologia == null) {
ngcMetodologia = new NgcMetodologiaBean();
}
return ngcMetodologia;
}
public NgcSistemaOperacional getNgcSistemaOperacional() {
if (ngcSistemaOperacional == null) {
ngcSistemaOperacional = new NgcSistemaOperacionalBean();
}
return ngcSistemaOperacional;
}
public NgcRedeLan getNgcRedeLan() {
if (ngcRedeLan == null) {
ngcRedeLan = new NgcRedeLanBean();
}
return ngcRedeLan;
}
public NgcRedeWan getNgcRedeWan() {
if (ngcRedeWan == null) {
ngcRedeWan = new NgcRedeWanBean();
}
return ngcRedeWan;
}
public NgcContrato getNgcContrato() {
if (ngcContrato == null) {
ngcContrato = new NgcContratoBean();
}
return ngcContrato;
}
/**
* Metodo de pegar a propriedade do ngcSituacaoProjeto.
*
*
* @return o valor do campo ngcSituacaoProjeto.
*/
public NgcSituacaoOrgao getNgcSituacaoOrgao() {
if (ngcSituacaoOrgao == null) {
ngcSituacaoOrgao = new NgcSituacaoOrgaoBean();
}
return ngcSituacaoOrgao;
}
public NgcSituacaoProjeto getNgcSituacaoProjeto() {
if (ngcSituacaoProjeto == null) {
ngcSituacaoProjeto = new NgcSituacaoProjetoBean();
}
return ngcSituacaoProjeto;
}
public NgcProjeto getNgcProjeto() {
if (ngcProjeto == null) {
ngcProjeto = new NgcProjetoBean();
}
return ngcProjeto;
}
public NgcNivelAtuacao getNgcNivelAtuacao() {
if (ngcNivelAtuacao == null) {
ngcNivelAtuacao = new NgcNivelAtuacaoBean();
}
return ngcNivelAtuacao;
}
public NgcTipoVinculo getNgcTipoVinculo() {
if (ngcTipoVinculo == null) {
ngcTipoVinculo = new NgcTipoVinculoBean();
}
return ngcTipoVinculo;
}
public NgcTipoTreinamento getNgcTipoTreinamento() {
if (ngcTipoTreinamento == null) {
ngcTipoTreinamento = new NgcTipoTreinamentoBean();
}
return ngcTipoTreinamento;
}
public NgcRecursosHumanos getNgcRecursosHumanos() {
if (ngcRecursosHumanos == null) {
ngcRecursosHumanos = new NgcRecursosHumanosBean();
}
return ngcRecursosHumanos;
}
public NgcCusto getNgcCusto() {
if (ngcCusto == null) {
ngcCusto = new NgcCustoBean();
}
return ngcCusto;
}
public NgcSugestao getNgcSugestao() {
if (ngcSugestao == null) {
ngcSugestao = new NgcSugestaoBean();
}
return ngcSugestao;
}
public NgcLinguagemApl getNgcLinguagemApl() {
if (ngcLinguagemApl == null) {
ngcLinguagemApl = new NgcLinguagemAplBean();
}
return ngcLinguagemApl;
}
public NgcBancoDadosApl getNgcBancoDadosApl() {
if (ngcBancoDadosApl == null) {
ngcBancoDadosApl = new NgcBancoDadosAplBean();
}
return ngcBancoDadosApl;
}
public NgcPlataformaApl getNgcPlataformaApl() {
if (ngcPlataformaApl == null) {
ngcPlataformaApl = new NgcPlataformaAplBean();
}
return ngcPlataformaApl;
}
public NgcStatusApl getNgcStatusApl() {
if (ngcStatusApl == null) {
ngcStatusApl = new NgcStatusAplBean();
}
return ngcStatusApl;
}
}
NgcAplicacaoBean.java
public class NgcAplicacaoBean extends BusinessBean<Aplicacao> implements
NgcAplicacao {
public NgcAplicacaoBean() {
super(Aplicacao.class);
}
}
BusinessBean.java
public abstract class BusinessBean<Entity extends Model> extends BusinessGeneric<Entity> implements Business<Entity> {
@SuppressWarnings("unchecked")
public BusinessBean(final Class classEntidade) {
super(classEntidade);
}
}
BusinessGeneric.java
public abstract class BusinessGeneric<Entity extends Model> {
@SuppressWarnings("unchecked")
private Class classEntidade = null;
private PrsDao<Entity> prsDao = null;
@SuppressWarnings("unchecked")
public BusinessGeneric(final Class classEntidade) {
super();
this.classEntidade = classEntidade;
this.prsDao = new PrsDaoBean<Entity>(classEntidade);
}
public PrsDao<Entity> getPrsDao() {
return prsDao;
}
@SuppressWarnings("unchecked")
public Class getClassEntidade() {
return classEntidade;
}
@SuppressWarnings("unchecked")
public void setClassEntidade(Class classEntidade) {
this.classEntidade = classEntidade;
}
public Entity salvar(final Entity model) throws PDTIException {
Entity retEntity = null;
if (model != null) {
final Long codEntity = Builder.getIdEntity(model, Builder.getNameId(model));
if (codEntity == null) {
retEntity = prsDao.criar(model);
} else {
retEntity = prsDao.alterar(model);
}
}
return retEntity;
}
public void excluir(final Entity model) throws PDTIException {
prsDao.excluir(model);
}
public Entity recuperar(final Entity model) throws PDTIException {
return prsDao.recuperar(model);
}
@SuppressWarnings("unchecked")
public Entity recuperar(final Long codigo) throws PDTIException {
final Entity model = (Entity) Builder.getNewEntity(codigo,
this.classEntidade);
return this.recuperar(model);
}
public Set<Entity> listar(final Entity model,
final Map<String, Ordenacao> order, final Long qtdRegistros,
final Long regInicial) throws PDTIException {
return prsDao.listar(model, order, qtdRegistros, regInicial);
}
}
PrsDaoBean.java
public class PrsDaoBean<Entity extends Model> extends PrsPadraoBean<Entity>
implements PrsDao<Entity> {
/**
*
* Construtor da Classe.
*
*/
public PrsDaoBean() {
}
/**
*
* Construtor da Classe.
*
* @param classEntidade
*/
public PrsDaoBean(final Class<?> classEntidade) {
super();
this.setClassEntidade(classEntidade);
}
}
PrsPadraoBean.java
public abstract class PrsPadraoBean<Entity extends Model> {
private Class<?> classEntidade = null;
//Gerenciador de fábrica de entidades.
private EntityManagerFactory factory = null;
//Entidade responsável pela persistência.
private EntityManager manager = null;
//Referência do persistence.xml.
private static final String PERSISTENCE_NAME = "pdtiweb";
private String causaErro = "";
/**
* Inicialização da classe de persistência.
*
* @author Aldivone Correia[[email removido]] - $12/05/2007:23:19:57$
*
*/
private void initialize() {
if (this.factory == null) {
this.factory = Persistence.createEntityManagerFactory(PERSISTENCE_NAME);
}
if (this.manager == null) {
this.manager = this.factory.createEntityManager();
}
}
/**
* Pegar a conexão.
*
* @author Aldivone Correia[[email removido]] - $25/09/2007:21:18:34$
*
*/
private void getConnection() {
this.factory = Persistence.createEntityManagerFactory(PERSISTENCE_NAME);
this.manager = this.factory.createEntityManager();
}
/**
*
* Construtor da Classe.
*
* @author Aldivone Correia[[email removido]] - $11/05/2007:20:36:19$
*/
public PrsPadraoBean() {
this.initialize();
}
/**
* Incluir no banco de dados um objeto passado com parametro.
*
* @param entity
* @return
*/
public Entity criar(final Entity entity) {
Entity entRetorno = null;
this.getConnection();
this.manager.getTransaction().begin();
try {
this.manager.persist(entity);
entRetorno = entity;
this.manager.getTransaction().commit();
} catch (final RuntimeException e) {
this.causaErro = e.getMessage();
this.manager.getTransaction().rollback();
throw new DAOExpection(
"Erro ao incluir os dados no Banco de Dados da entidade: " + entity.getClass().getSimpleName() + "Erro: " + this.causaErro);
} finally {
this.manager.close();
this.factory.close();
}
return entRetorno;
}
/**
* Alterar no banco de dados um objeto passado com parametro.
*
* @param entity
* @return
*/
public Entity alterar(final Entity entity) {
Entity entRetorno = null;
this.getConnection();
this.manager.getTransaction().begin();
try {
entRetorno = this.manager.merge(entity);
this.manager.getTransaction().commit();
} catch (final RuntimeException e) {
this.manager.getTransaction().rollback();
throw new DAOExpection(
"Erro ao alterar os dados no Banco de Dados da entidade: " + entity.getClass().getSimpleName());
} finally {
this.manager.close();
this.factory.close();
}
return entRetorno;
}
/**
* Excluir no banco de dados um objeto passado com parametro.
*
* @param entity
* @throws PDTIException
*/
public void excluir(final Entity entity) throws PDTIException {
this.getConnection();
this.manager.getTransaction().begin();
try {
final Long codEntity = Builder.getIdEntity(entity, Builder.getNameId(entity));
if (codEntity != null) {
final String strDelete = "delete from " + entity.getClass().getSimpleName() + " entity where entity." + Builder.getNameId(entity) + " = " + codEntity.toString();
final Query query = this.manager.createQuery(strDelete);
query.executeUpdate();
this.manager.getTransaction().commit();
}
} catch (final RuntimeException e) {
this.manager.getTransaction().rollback();
e.printStackTrace();
throw new DAOExpection(
"Erro ao excluir os dados no Banco de Dados da entidade: " + entity.getClass().getSimpleName());
} finally {
this.manager.close();
this.factory.close();
}
}
/**
* Recuperar no banco de dados um objeto de acordo com o código e class
* passada com parâmetro
*
* @param codigo
* @param clazz
* @return Objeto pesquisado de acordo com o código do parametro.
*/
@SuppressWarnings("unchecked")
private Entity recuperar(final Long codigo, final Entity model) {
this.getConnection();
this.manager.getTransaction().begin();
Entity retorno = null;
try {
retorno = (Entity) this.manager.find(model.getClass(), codigo);
this.manager.getTransaction().commit();
} catch (final RuntimeException e) {
this.manager.getTransaction().rollback();
e.printStackTrace();
throw new DAOExpection("Erro ao recuperar do Banco de Dados a entidade: " + model.getClass().getSimpleName());
} finally {
this.manager.close();
this.factory.close();
}
return retorno;
}
/**
* Buscar no banco de dados um Lista de Objetos apartir de string com a
* consulta EJBQL.
*
* @param ejbQl
* @return Lista de objetos da consulta.
*/
@SuppressWarnings("unchecked")
public Set<Entity> listar(final String ejbQl) {
this.getConnection();
this.manager.getTransaction().begin();
Set<Entity> lstRetorno = null;
try {
this.manager.getTransaction().begin();
final Query query = this.manager.createQuery(ejbQl);
lstRetorno = new LinkedHashSet<Entity>();
for (final Object entit : query.getResultList()) {
lstRetorno.add((Entity) entit);
}
} catch (final RuntimeException e) {
this.manager.getTransaction().rollback();
throw new DAOExpection("Erro ao recuperar do Banco de Dados a entidade: ");
} finally {
this.manager.close();
this.factory.close();
}
return lstRetorno;
}
/**
* Buscar uma lista de Entidade.
*
*
* @param model
* entidade com os parametros da busca.
* @param order
* tipo de ordenação da consulta.
* @param qtdRegistros
* quantidade de registros que deverá retorna a consulta.
* @param regInicial
* números do registro inicial do registro que será retornado.
* @return List<Entity> Lista de objetos retorna pela consulta.
* @throws PDTIException
*/
@SuppressWarnings("unchecked")
public Set<Entity> listar(final Entity model,
final Map<String, Ordenacao> order, final Long qtdRegistros,
final Long regInicial) throws PDTIException {
this.getConnection();
this.manager.getTransaction().begin();
Set<Entity> lstRetorno = null;
try {
final StringBuilder ejbQl = new StringBuilder();
try {
ejbQl.append(Builder.getEJBQL(model, this.getClassEntidade(), order));
} catch (final Exception e) {
e.printStackTrace();
throw new PDTIException(e);
}
System.out.println("PRSPADRAOBEAN.listar.: " + ejbQl.toString());
final Query query = this.manager.createQuery(ejbQl.toString());
if (regInicial != null) {
query.setFirstResult(regInicial.intValue());
}
if (qtdRegistros != null) {
query.setMaxResults(qtdRegistros.intValue());
}
lstRetorno = new LinkedHashSet<Entity>(query.getResultList());
System.out.println("Quantidade de registros da consulta retornada: " + lstRetorno.size());
this.manager.getTransaction().commit();
} catch (final RuntimeException e) {
this.manager.getTransaction().rollback();
e.printStackTrace();
throw new DAOExpection("Erro ao recuperar do Banco de Dados a entidade");
} finally {
this.manager.close();
this.factory.close();
}
return lstRetorno;
}
/**
*
* @author Aldivone Correia[[email removido]] - $11/05/2007:20:47:59$
*
* @param model
* Entidade a ser recuperada.
* @return Entidade recuperada.
* @throws PDTIException
*/
public Entity recuperar(final Entity model) throws PDTIException {
Entity retorno = null;
final Long codigo = Builder.getIdEntity(model, Builder.getNameId(model));
if (codigo != null) {
retorno = this.recuperar(codigo, model);
}
return retorno;
}
/**
* Método de pegar a propriedade do classEntidade.
*
* @author Aldivone Correia[[email removido]] - $04/06/2007:14:06:03$.
*
* @return o valor do campo classEntidade.
*/
public Class<?> getClassEntidade() {
return this.classEntidade;
}
/**
* Método para setar a propriedade do classEntidade.
*
* @author Aldivone Correia[[email removido]] - $04/06/2007:14:06:03$.
*
* @param classEntidade
* valor que será setado no campo: classEntidade.
*/
public void setClassEntidade(final Class<?> classEntidade) {
this.classEntidade = classEntidade;
}
}
persistence.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="pdtiweb" transaction-type="RESOURCE_LOCAL">
<provider>
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
</provider>
<class>br.gov.ce.seplag.pdtiweb.model.Entidade</class>
<class>br.gov.ce.seplag.pdtiweb.model.Orgao</class>
<class>br.gov.ce.seplag.pdtiweb.model.NecessidadeInf</class>
<class>br.gov.ce.seplag.pdtiweb.model.Orcamento</class>
<class>br.gov.ce.seplag.pdtiweb.model.Colaborador</class>
<class>br.gov.ce.seplag.pdtiweb.model.ProdutoServ</class>
<class>br.gov.ce.seplag.pdtiweb.model.TipoHardware</class>
<class>br.gov.ce.seplag.pdtiweb.model.Hardware</class>
<class>br.gov.ce.seplag.pdtiweb.model.TipoSoftware</class>
<class>br.gov.ce.seplag.pdtiweb.model.Software</class>
<class>br.gov.ce.seplag.pdtiweb.model.TipoAplicacao</class>
<class>br.gov.ce.seplag.pdtiweb.model.NivelAplicacao</class>
<class>br.gov.ce.seplag.pdtiweb.model.ModoInteracao</class>
<class>br.gov.ce.seplag.pdtiweb.model.Aplicacao</class>
<class>br.gov.ce.seplag.pdtiweb.model.Plataforma</class>
<class>br.gov.ce.seplag.pdtiweb.model.ServicoInternet</class>
<class>br.gov.ce.seplag.pdtiweb.model.Metodologia</class>
<class>br.gov.ce.seplag.pdtiweb.model.SistemaOperacional</class>
<class>br.gov.ce.seplag.pdtiweb.model.RedeLan</class>
<class>br.gov.ce.seplag.pdtiweb.model.Contrato</class>
<class>br.gov.ce.seplag.pdtiweb.model.SituacaoOrgao</class>
<class>br.gov.ce.seplag.pdtiweb.model.SituacaoProjeto</class>
<class>br.gov.ce.seplag.pdtiweb.model.Projeto</class>
<class>br.gov.ce.seplag.pdtiweb.model.NivelAtuacao</class>
<class>br.gov.ce.seplag.pdtiweb.model.TipoVinculo</class>
<class>br.gov.ce.seplag.pdtiweb.model.TipoTreinamento</class>
<class>br.gov.ce.seplag.pdtiweb.model.RecursosHumanos</class>
<class>br.gov.ce.seplag.pdtiweb.model.Custo</class>
<class>br.gov.ce.seplag.pdtiweb.model.Sugestao</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<!--property name="toplink.logging.level" value="FINE" /-->
<property name="toplink.jdbc.driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="toplink.jdbc.url" value="url" />
<property name="toplink.target-database" value="Oracle"/>
<property name="toplink.jdbc.user" value="user" />
<property name="toplink.jdbc.password" value="pass" />
<property name="toplink.logging.level" value="INFO" />
<!-- Use the C3P0 connection pool provider -->
<property name="hibernate.c3p0.min_size">3</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">50</property>
<!--property name="toplink.ddl-generation" value="create-tables" />
<property name="toplink.ddl-generation" value="drop-and-create-tables"/>
<property name="toplink.platform.class.name"
value="oracle.toplink.essentials.platform.database.oracle.OraclePlatformm"/-->
</properties>
</persistence-unit>
</persistence>
estrutura do projeto
[img]http://img501.imageshack.us/img501/3500/imagemph1.jpg[/img]
***EDIT***
soh um detalhe, o build que o netbeans cria jah passa tudo que fica nessa pasta /conf dentro do source para a pasta /META-INF dentro da pasta web do projeto construido ... alguem me de uma luz, porque raios essa funcao ta da retornando uma null pointer exception :/
[img]http://img110.imageshack.us/img110/4281/imagemwy0.jpg[/img]