我在jee(Jboss 6.0.1)中使用jsf和ejbs开发了一个项目。

我使用带有cdi和一个持久性单元的spring数据没有任何问题。
向弹簧数据注入持久性单元的配置。

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


但是现在我的persistence.xml(“ sigroUnit”)中有了另一个持久性单元。因此,当我尝试将应用程序部署到jboss时,


  未指定持久性unitName,并且有2个持久性
  应用程序部署“ simje.ear”中的单元定义


我确实尝试过为其他持久性单元创建相同的配置。

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


所以我仍然从jboss得到错误。


  未指定持久性unitName,并且有2个持久性
  应用程序部署“ simje.ear”中的单元定义


任何人都有任何想法如何解决该问题?

我的坚持

   <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>

最佳答案

不要创建生产者。在您的业务类别中,只需使用:

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


要么

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


或两者。

如果仍要与生产者一起使用CDI注入,则需要创建限定符以区分这些实体管理器。但是我从未见过这种解决方案,因为它没有任何意义...

@Qualifier


此处更多信息:Dependency injection

关于java - Spring Data CDI多个持久性单元错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47287423/

10-11 10:51