简体   繁体   中英

Spring data cdi multiple persistence unit error

i have a project in jee(Jboss 6.0.1) using jsf and ejbs.

I was using spring data with cdi and one persistence unit without any problems. The configuration to inject persistence unit to the spring data.

public class CdiConfig {
    @Produces
    @Dependent
    @PersistenceContext(unitName = "simje")
    private EntityManager entityManager;

But now i have another persistence unit in my persistence.xml ("sigroUnit"). So when i trying to deploy my application to jboss i'm getting

Persistence unitName was not specified and there are 2 persistence unit definitions in application deployment "simje.ear"

I did tried to create the same configuration to the other persistence unit.

    @Produces
    @Dependent
    @PersistenceContext(unitName = "sigro")
    private EntityManager entityManagerSigro;

So i'm still getting the error from jboss.

Persistence unitName was not specified and there are 2 persistence unit definitions in application deployment "simje.ear"

Anyone has any ideia how to fix that problem?

My persistence

   <persistence 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_2_0.xsd"
    version="2.0">
    <persistence-unit name="simje">
        <jta-data-source>java:/SimjeDS</jta-data-source>


        <!-- Entidades mapeados para o projeto devem ser adicionadas com o fullname -->
        <!-- <class>br.gov.cef.projeto.domain.enidade.Entidade</class> -->

        <!-- Entidades do modulo SIICO -->
        <class>br.gov.cef.siico.domain.endereco.Localidade</class>
        <class>br.gov.cef.siico.domain.endereco.MunicipioIbge</class>
        <class>br.gov.cef.siico.domain.endereco.MunicipioIbgePK</class>
        <class>br.gov.cef.siico.domain.endereco.Regiao</class>
        <class>br.gov.cef.siico.domain.endereco.Uf</class>
        <class>br.gov.cef.siico.domain.unidade.Unidade</class>
        <class>br.gov.cef.siico.domain.unidade.VinculoUnidade</class>
        <class>br.gov.cef.siico.domain.unidade.TipoUnidade</class>
        <class>br.gov.cef.siico.domain.unidade.ResponsavelUnidadeCaixa</class>
        <class>br.gov.cef.siico.domain.empregado.EmpregadoCaixa</class>
        <class>br.gov.cef.siico.domain.empregado.Funcao</class>
        <class>br.gov.cef.siico.domain.empregado.Cargo</class>

        <!-- Entidades SIMJE -->
        <class>br.gov.simje.domain.Tribunal</class>
        <class>br.gov.simje.domain.Certificado</class>
        <class>br.gov.simje.domain.Contato</class>
        <class>br.gov.simje.domain.ParametroSistema</class>

        <exclude-unlisted-classes>false</exclude-unlisted-classes>

        <properties>
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="true" />
            <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
            <property name="hibernate.hbm2ddl.auto" value="validate" />
            <property name="hibernate.jdbc.batch_size" value="600" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
            <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider" />
            <property name="hibernate.default_schema" value="pcpsm001" />
        </properties>
    </persistence-unit>


<persistence-unit name="sigro">
        <jta-data-source>java:/SigroDS</jta-data-source>

        <!-- Entidades SIGRO -->
        <class>br.gov.cef.sigro.domain.linhanegocio.LinhaNegocio</class>
        <class>br.gov.cef.sigro.domain.linhanegocio.LinhaNegocioPrincipal</class>
        <class>br.gov.cef.sigro.domain.linhanegocio.LinhaNegocioPrincipalPK</class>
        <class>br.gov.cef.sigro.domain.unidade.ResponsabilidadeUnidade</class>
        <class>br.gov.cef.sigro.domain.siico.UnidadeSigro</class>
        <class>br.gov.cef.sigro.domain.siico.GestaoProdutoSigro</class>
        <class>br.gov.cef.sigro.domain.siico.ProdutoSigro</class>
        <class>br.gov.cef.sigro.domain.informacao.FonteInformacao</class>
        <class>br.gov.cef.sigro.domain.perda.OrigemPerda</class>
        <class>br.gov.cef.sigro.domain.risco.CategoriaRisco</class>
        <class>br.gov.cef.sigro.domain.provisao.GrupoProvisao</class>
        <class>br.gov.cef.sigro.domain.macroprocesso.MacroProcesso</class>
        <class>br.gov.cef.sigro.domain.tipogestao.TipoGestao</class>
        <class>br.gov.cef.sigro.domain.provisao.IndicadorSucessoAcao</class>
        <class>br.gov.cef.sigro.domain.perda.ItemRegistroPerda</class>
        <class>br.gov.cef.sigro.domain.lancamento.LancamentoContabilClassificado</class>
        <class>br.gov.cef.sigro.domain.lancamento.LancamentoContabilPendenteAprovacao</class>
        <class>br.gov.cef.sigro.domain.lancamento.AutorizarLancamentoForaPrazo</class>
        <class>br.gov.cef.sigro.domain.evento.EventoContabil</class>
        <class>br.gov.cef.sigro.domain.macroprocesso.MacroProcessoGestao</class>
        <class>br.gov.cef.sigro.domain.unidade.UnidadeTipoGestao</class>
        <class>br.gov.cef.sigro.domain.provisao.RegistroProvisao</class>
        <class>br.gov.cef.sigro.domain.provisao.TipoLancamentoProvisao</class>
        <class>br.gov.cef.sigro.domain.planoconta.PlanoConta</class>
        <class>br.gov.cef.sigro.domain.risco.EventoRisco</class>
        <class>br.gov.cef.sigro.domain.siico.OperacaoBancaria</class>
        <class>br.gov.cef.sigro.domain.linhanegocio.LinhaNegocioOperacaoBancaria</class>
        <class>br.gov.cef.sigro.domain.produto.ProdutoOperacaoBancaria</class>
        <class>br.gov.cef.sigro.domain.lancamento.ModalidadeLancamentoPerda</class>
        <class>br.gov.cef.sigro.domain.perda.RegistroPerda</class>
        <class>br.gov.cef.sigro.domain.perda.Conciliacao</class>
        <class>br.gov.cef.sigro.domain.evento.RoteiroContabil</class>
        <class>br.gov.cef.sigro.domain.evento.EventoContabilProduto</class>
        <class>br.gov.cef.sigro.domain.evento.EventoExterno</class>
        <class>br.gov.cef.sigro.domain.evento.GestaoEventoContabil</class>
        <class>br.gov.cef.sigro.domain.risco.EventoRiscoEventoContabil</class>
        <class>br.gov.cef.sigro.domain.arquivo.ControleArquivoImportado</class>
        <class>br.gov.cef.sigro.domain.provisao.GrupoProvisaoEventoContabil</class>
        <class>br.gov.cef.sigro.domain.beicf.Instituicao</class>
        <class>br.gov.cef.sigro.domain.beicf.CategoriaBeicf</class>
        <class>br.gov.cef.sigro.domain.beicf.Beicf</class>
        <class>br.gov.cef.sigro.domain.beicf.RegistroBeicf</class>
        <class>br.gov.cef.sigro.domain.parametro.Parametro</class>
        <class>br.gov.cef.sigro.domain.produto.SubContaProduto</class>
        <class>br.gov.cef.sigro.domain.risco.QuestionarioRisco</class>
        <class>br.gov.cef.sigro.domain.risco.PerguntaRisco</class>
        <class>br.gov.cef.sigro.domain.risco.MapeamentoRisco</class>
        <class>br.gov.cef.sigro.domain.risco.QuestionarioPerguntaRisco</class>
        <class>br.gov.cef.sigro.domain.risco.QuestionarioCategoriaRisco</class>
        <class>br.gov.cef.sigro.domain.risco.CategoriaQuestaoRisco</class>
        <class>br.gov.cef.sigro.domain.autoavaliacao.PesquisaAutoavaliacao</class>
        <class>br.gov.cef.sigro.domain.autoavaliacao.PesquisaAutoavaliacaoUnidade</class>
        <class>br.gov.cef.sigro.domain.autoavaliacao.RespostaQuestionarioAutoavaliacao</class>
        <class>br.gov.cef.sigro.domain.autoavaliacao.DetalheRespostaQuestionario</class>
        <class>br.gov.cef.sigro.domain.risco.MapeamentoUnidadeEnvolvida</class>
        <class>br.gov.cef.sigro.domain.risco.MapeamentoRiscoSistema</class>
        <class>br.gov.cef.sigro.domain.risco.MapeamentoRiscoProduto</class>
        <class>br.gov.cef.sigro.domain.risco.RespostaAvaliacaoRisco</class>
        <class>br.gov.cef.sigro.domain.parametro.ParametroMensagemEmail</class>
        <class>br.gov.cef.sigro.domain.lancamento.SituacaoAgendamentoLancamentoContabil</class>
        <class>br.gov.cef.sigro.domain.lancamento.AgendamentoImportacaoLancamentoContabil</class>
        <class>br.gov.cef.sigro.domain.evento.ClassificacaoEventoContabilConta</class>
        <class>br.gov.cef.sigro.domain.matrizrisco.MatrizRisco</class>
        <class>br.gov.cef.sigro.domain.matrizrisco.DetalheMatrizRisco</class>
        <class>br.gov.cef.sigro.domain.matrizrisco.MatrizRiscoPesquisaAutoavaliacao</class>
        <class>br.gov.cef.sigro.domain.matrizrisco.MatrizRiscoPesquisaAutoavaliacaoPK</class>
        <class>br.gov.cef.sigro.domain.escalaimpacto.EscalaImpactoAutoAvaliacao</class>
        <class>br.gov.cef.sigro.domain.recomendacao.RecomendacaoPadrao</class>
        <class>br.gov.cef.sigro.domain.recomendacao.RecomendacaoEvento</class>
        <class>br.gov.cef.sigro.domain.autoavaliacao.NivelImpactoAutoavaliacao</class>
        <class>br.gov.cef.sigro.domain.transferencia.TransferenciaResponsabilidade</class>
        <class>br.gov.cef.sigro.domain.questionarioautoavaliacao.QuestaoAutoavaliacao</class>
        <class>br.gov.cef.sigro.domain.questionarioautoavaliacao.QuestionarioAutoavaliacao</class>
        <class>br.gov.cef.sigro.domain.questionarioautoavaliacao.QuestionarioQuestaoAutoavaliacao</class>
        <class>br.gov.cef.sigro.domain.questionarioautoavaliacao.AlternativaQuestaoAutoavaliacao</class>
        <class>br.gov.cef.sigro.domain.unidade.RepresentacaoUnidade</class>
        <class>br.gov.cef.sigro.domain.unidade.RepresentacaoUnidadePK</class>
        <class>br.gov.cef.sigro.domain.transferencia.ItemTransferenciaResponsabilidade</class>
        <class>br.gov.cef.sigro.domain.lancamento.basehistorica.LancamentoContabilCredito</class>
        <class>br.gov.cef.sigro.domain.lancamento.basehistorica.LancamentoContabilDebito</class>
        <class>br.gov.cef.sigro.domain.risco.EtapaMapeamentoRisco</class>
        <class>br.gov.cef.sigro.domain.risco.EtapaMapeamentoRiscoPK</class>
        <class>br.gov.cef.sigro.domain.questionarioautoavaliacao.ParametroQuestaoAutoavaliacao</class>
        <class>br.gov.cef.sigro.domain.risco.PesquisaAvaliacaoRisco</class>
        <class>br.gov.cef.sigro.domain.risco.PesquisaAvaliacaoRiscoUnidade</class>
        <class>br.gov.cef.sigro.domain.risco.ParametroFaixaNotaAvaliacaoRisco</class>
        <class>br.gov.cef.sigro.domain.perda.RegistroPerdaBaseHistorica</class>
        <class>br.gov.cef.sigro.domain.perda.ItemRegistroPerdaBaseHistorica</class>
        <class>br.gov.cef.sigro.domain.lancamento.AgendamentoImportacaoPerda</class>



        <!-- Entidades SIICO -->
        <class>br.gov.cef.siico.domain.entidade.EntidadeSiico</class>
        <class>br.gov.cef.siico.domain.publico.PublicoAlvo</class>
        <class>br.gov.cef.siico.domain.sistema.Sistema</class>
        <class>br.gov.cef.siico.domain.produto.FonteProduto</class>
        <class>br.gov.cef.siico.domain.produto.FonteRecurso</class>
        <class>br.gov.cef.siico.domain.publico.TipoPublico</class>
        <class>br.gov.cef.siico.domain.produto.TipoCanal</class>
        <class>br.gov.cef.siico.domain.produto.SegmentoAtendimento</class>
        <class>br.gov.cef.siico.domain.produto.AtendimentoProduto</class>
        <class>br.gov.cef.siico.domain.produto.ComercializacaoProduto</class>
        <class>br.gov.cef.siico.domain.empregado.EmpregadoCaixa</class>
        <class>br.gov.cef.siico.domain.endereco.Endereco</class>
        <class>br.gov.cef.siico.domain.empregado.Funcao</class>
        <class>br.gov.cef.siico.domain.empregado.Cargo</class>
        <class>br.gov.cef.siico.domain.endereco.Localidade</class>
        <class>br.gov.cef.siico.domain.endereco.MunicipioIbge</class>
        <class>br.gov.cef.siico.domain.endereco.MunicipioIbgePK</class>
        <class>br.gov.cef.siico.domain.endereco.Regiao</class>
        <class>br.gov.cef.siico.domain.endereco.Uf</class>
        <class>br.gov.cef.siico.domain.unidade.TipoUnidade</class>
        <class>br.gov.cef.siico.domain.unidade.Unidade</class>
        <class>br.gov.cef.siico.domain.unidade.UnidadePK</class>
        <class>br.gov.cef.siico.domain.unidade.VinculoUnidade</class>
        <class>br.gov.cef.siico.domain.unidade.VinculoUnidadePK</class>
        <class>br.gov.cef.siico.domain.unidade.LocalizacaoUnidade</class>
        <class>br.gov.cef.siico.domain.unidade.LocalizacaoUnidadePK</class>
        <class>br.gov.cef.siico.domain.produto.GestaoProduto</class>
        <class>br.gov.cef.siico.domain.produto.ProdutoSiico</class>
        <class>br.gov.cef.siico.domain.operacao.Operacao</class>
        <class>br.gov.cef.siico.domain.operacao.LinhaOperacao</class>
        <class>br.gov.cef.siico.domain.operacao.AreaAtuacao</class>
        <class>br.gov.cef.siico.domain.unidade.ResponsavelUnidadeCaixa</class>
        <class>br.gov.cef.siico.domain.unidade.ResponsavelUnidadeCaixaPK</class>
        <class>br.gov.cef.siico.domain.comunicacao.MeioComunicacao</class>
        <class>br.gov.cef.siico.domain.comunicacao.MeioComunicacaoUnidade</class>
        <class>br.gov.cef.siico.domain.comunicacao.MeioComunicacaoUnidadePK</class>


        <!-- Processamento -->
        <class>br.gov.cef.sigro.domain.processamento.Processamento</class>
        <class>br.gov.cef.sigro.domain.processamento.ExecucaoProcessamento</class>
        <class>br.gov.cef.sigro.domain.processamento.ItemProcessamento</class>


        <!-- Cenário -->
        <class>br.gov.cef.sigro.domain.cenario.Cenario</class>
        <class>br.gov.cef.sigro.domain.cenario.RegistroCenario</class>


        <!-- Plano de Ação -->
        <class>br.gov.cef.sigro.domain.matrizgut.MatrizGut</class>
        <class>br.gov.cef.sigro.domain.matrizgut.DetalheMatrizGut</class>
        <class>br.gov.cef.sigro.domain.planoacao.OrigemApontamento</class>
        <class>br.gov.cef.sigro.domain.planoacao.Acao</class>
        <class>br.gov.cef.sigro.domain.planoacao.PlanoAcaoAcaoMitigacao</class>
        <class>br.gov.cef.sigro.domain.planoacao.ParametrosPlanoAcaoAcaoMitigacao</class>
        <class>br.gov.cef.sigro.domain.planoacao.historico.HistoricoPlanoAcao</class>

        <exclude-unlisted-classes>false</exclude-unlisted-classes>

        <properties>
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="true" />
            <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
            <property name="hibernate.hbm2ddl.auto" value="validate" />
            <property name="hibernate.jdbc.batch_size" value="50" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
            <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider" />
            <property name="hibernate.default_schema" value="grosm001" />
        </properties>
    </persistence-unit>



</persistence>

Do not create producer. In your business classes simply use:

@PersistenceContext(unitName = "simje")
private EntityManager entityManager;

or

@PersistenceContext(unitName = "sigro")
private EntityManager entityManagerSigro;

or both.

If you still want to use CDI inject with producer you need to create the qualifier to distinguish between these entity managers. But I never see this solution because it does not makes any sense...

@Qualifier

More info here: Dependency injection

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM