demys
Outubro 6, 2010, 2:12pm
#1
Ola Pessoal.
Estou com o seguinte problema em um projeto web:
Tenho um objeto Titulo que possui uma collection de objetos TaxaManutencao.
Então, entro em uma tela e consulto um objeto Titulo e exibo em uma table sua collection de objetos TaxaManutencao.
Porém, tenho uma outra tela onde gero taxas de manutenções para todos o titulos baseado em um dado mês (uma rotina mensal para gerar TaxaManutencao para todos os Titulo).
O problema é que se eu gerar as taxas e voltar na consulta de titulo o JPA não esta trazendo as TaxaManutencoa que foram geradas.
No Banco de Dados verifiquei e estão geradas normalmente.
Deve ser problema de cache do JPA, pois se eu parar o servidor e entrar novamente as consultas funcionam corretamente.
Alguém sabe o que eu tenho que configurar no JPA, para que ele atualize o cache quando forem gerados objetos em telas diferentes do mesmo sistema.
Estou usando:
MySql 5.0
EclipseLink (JPA 2.0) - Netbeans 6.9
Glassfish 3.1
Injeção de Dependencia:
@PersistenceContext (unitName = “bns_financeiroPU”)
EntityManager em;
@Resource
UserTransaction utx;
Persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
org.eclipse.persistence.jpa.PersistenceProvider
jdbc/bns_sys
........
Vc não está usando JPA2. O seu persistence.xml está declarado como JPA 1.0. Tem certeza q é Glassfish v3.1, pq essa versão do Glassfish ainda não saiu, não a versão final ao menos!
Poste o restando do seu persistence.xml p/ q eu possa analisa-lo. E lembre-se de colocar o seu código entre tags [code] p/ ajudar na leitura.
demys
Outubro 6, 2010, 2:58pm
#3
<?xml version="1.0" encoding="UTF-8"?>
<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="bns_financeiroPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/bns_sys</jta-data-source>
<jar-file>bns_sys_jpa.jar</jar-file>
<class>br.com.banstur.financeiro.vo.FinPagar</class>
<class>br.com.banstur.financeiro.vo.FinPagarReserva</class>
<class>br.com.banstur.financeiro.vo.FinReceber</class>
<class>br.com.banstur.financeiro.vo.FinReceberReserva</class>
<class>br.com.banstur.geral.vo.AgenciaVO</class>
<class>br.com.banstur.geral.vo.BancoVO</class>
<class>br.com.banstur.geral.vo.BnsDiasSemana</class>
<class>br.com.banstur.geral.vo.CargoVO</class>
<class>br.com.banstur.geral.vo.CartaoCreditoVO</class>
<class>br.com.banstur.geral.vo.CidadeVO</class>
<class>br.com.banstur.geral.vo.ClienteVO</class>
<class>br.com.banstur.geral.vo.CondPagamentoVO</class>
<class>br.com.banstur.geral.vo.ContaVO</class>
<class>br.com.banstur.geral.vo.ContratoVO</class>
<class>br.com.banstur.geral.vo.DigContaVO</class>
<class>br.com.banstur.geral.vo.EnderecoVO</class>
<class>br.com.banstur.geral.vo.FinReceberContratoVO</class>
<class>br.com.banstur.geral.vo.FormaPagamentoVO</class>
<class>br.com.banstur.geral.vo.FormatacaoVO</class>
<class>br.com.banstur.geral.vo.FormulacaoVO</class>
<class>br.com.banstur.geral.vo.GrupoBansturVO</class>
<class>br.com.banstur.geral.vo.MoedaVO</class>
<class>br.com.banstur.geral.vo.PaisVO</class>
<class>br.com.banstur.geral.vo.PeriocidadeVO</class>
<class>br.com.banstur.geral.vo.ProdutoVO</class>
<class>br.com.banstur.geral.vo.PropostaVO</class>
<class>br.com.banstur.geral.vo.RegiaoVO</class>
<class>br.com.banstur.geral.vo.RepresentanteVO</class>
<class>br.com.banstur.geral.vo.TarifaVO</class>
<class>br.com.banstur.geral.vo.TaxaManVO</class>
<class>br.com.banstur.geral.vo.TipoLogradouroVO</class>
<class>br.com.banstur.geral.vo.TipoProdutoVO</class>
<class>br.com.banstur.geral.vo.UfVO</class>
<class>br.com.banstur.hoteis.vo.HotAcomodacoes</class>
<class>br.com.banstur.hoteis.vo.HotApartamentos</class>
<class>br.com.banstur.hoteis.vo.HotCalendarios</class>
<class>br.com.banstur.hoteis.vo.HotContratos</class>
<class>br.com.banstur.hoteis.vo.HotContratosServicosTarif</class>
<class>br.com.banstur.hoteis.vo.HotContratosServicosTarifDif</class>
<class>br.com.banstur.hoteis.vo.HotContratosTarifario</class>
<class>br.com.banstur.hoteis.vo.HotContratosTarifarioDif</class>
<class>br.com.banstur.hoteis.vo.HotContratosValores</class>
<class>br.com.banstur.hoteis.vo.HotGrupoServico</class>
<class>br.com.banstur.hoteis.vo.HotHoteis</class>
<class>br.com.banstur.hoteis.vo.HotHoteisEnderecos</class>
<class>br.com.banstur.hoteis.vo.HotLocalizacoes</class>
<class>br.com.banstur.hoteis.vo.HotModelosCalendarios</class>
<class>br.com.banstur.hoteis.vo.HotModelosDetalhes</class>
<class>br.com.banstur.hoteis.vo.HotPaxHotel</class>
<class>br.com.banstur.hoteis.vo.HotPromocoesHoteis</class>
<class>br.com.banstur.hoteis.vo.HotRedes</class>
<class>br.com.banstur.hoteis.vo.HotRestricoesHoteis</class>
<class>br.com.banstur.hoteis.vo.HotServicosHoteis</class>
<class>br.com.banstur.hoteis.vo.HotServicosTarif</class>
<class>br.com.banstur.hoteis.vo.HotServicosTarifDif</class>
<class>br.com.banstur.hoteis.vo.HotTarifario</class>
<class>br.com.banstur.hoteis.vo.HotTarifarioDif</class>
<class>br.com.banstur.hoteis.vo.HotTemporadas</class>
<class>br.com.banstur.hoteis.vo.HotTiposClasses</class>
<class>br.com.banstur.hoteis.vo.HotTiposPromocoes</class>
<class>br.com.banstur.hoteis.vo.HotTiposRestricoes</class>
<class>br.com.banstur.log.vo.LogSys</class>
<class>br.com.banstur.log.vo.LogSysDetail</class>
<class>br.com.banstur.reservas.vo.AnoDireitoVO</class>
<class>br.com.banstur.reservas.vo.DiariaContratoVO</class>
<class>br.com.banstur.reservas.vo.DiariasAdicionaisVO</class>
<class>br.com.banstur.reservas.vo.FinDataDebito</class>
<class>br.com.banstur.reservas.vo.RegistradaHotelVO</class>
<class>br.com.banstur.reservas.vo.RegistradaVO</class>
<class>br.com.banstur.reservas.vo.ReservaVO</class>
<class>br.com.banstur.reservas.vo.RsvApartPax</class>
<class>br.com.banstur.reservas.vo.RsvApartPaxQtd</class>
<class>br.com.banstur.reservas.vo.RsvPesquisaHotel</class>
<class>br.com.banstur.reservas.vo.RsvPesquisaIndicacoes</class>
<class>br.com.banstur.reservas.vo.RsvRegistradasHoteisContatos</class>
<class>br.com.banstur.reservas.vo.ServicosReservaVO</class>
<class>br.com.banstur.seguranca.vo.DepartamentoVO</class>
<class>br.com.banstur.seguranca.vo.GrupoVO</class>
<class>br.com.banstur.seguranca.vo.OperadorVO</class>
<class>br.com.banstur.seguranca.vo.PermissaoVO</class>
<class>br.com.banstur.financeiro.vo.FinReceberManutencao</class>
<class>br.com.banstur.financeiro.vo.FinReceberJoia</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties/>
</persistence-unit>
</persistence>
demys
Outubro 6, 2010, 3:02pm
#4
Realmente não estou usando o glassfish 3.1
Verifiquei é o glassfish 2.1
Importei os seguintes jar:
eclipselink-2.0.2.jar
eclipselink-javax-persistence-2.0.jar
O seu arquivo persistence.xml ainda está na versão 1.0 como vc pode ver pelo atributo version e pelo xsi:schemaLocation . Se possível testa a versão 1.0 p/ ver se o problema persiste. Senão dê uma olhada na documentação do EclipseLink. Eu ouvi dizer q alguns providers habilitam o cache compartilhado por padrão no JPA2. Veja se esse é o seu caso. De qualquer forma o cache compartilhado do JPA devia funcionar se quem estiver atualizando as entidades TaxaManutencao for o mesmo aplicativo, usando JPA e usando o mesmo persistence-unit.
demys
Outubro 6, 2010, 3:31pm
#6
Vou verificar, pois tenho 5 projetos em contextos diferentes que utilizam a mesma base de dados e as alterações refletem imediatamente em qualquer projeto, só que estão rodando com toplink-essentials-1.0 e não estou usando injeção de dependencia.
Vou verificar se não der certo vou ter que voltar na arquitetura antiga.
Obrigado.
qualquer duvida volto a postar.
Quando vc possui diferentes projetos acessando a mesma base de dados vc precisa ser mais cauteloso com o cache compartilhado do JPA pois esse cache só é compartilhado dentro de uma unica aplicação. Se outra aplicação modificar os dados da base podem acabar com copias desatualizadas das entidades nos seus respectivos caches. Se for o caso do EclipseLink de ativar por padrão o cache compartilhado, então a sua solução seria simplesmente desativa-lo no persistence.xml ou configurar suas queries p/ não consultar o cache compartilhado.
demys
Outubro 6, 2010, 3:51pm
#8
Voltei a utilizar o toplink, pois estava dando certo.
Agora esta funcionando da seguinte forma:
<?xml version="1.0" encoding="UTF-8"?>
<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="bns_financeiroPU" transaction-type="JTA">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<jta-data-source>jdbc/bns_sys</jta-data-source>
<jar-file>bns_sys_jpa.jar</jar-file>
<class>br.com.banstur.financeiro.vo.FinPagar</class>
<class>br.com.banstur.financeiro.vo.FinPagarReserva</class>
<class>br.com.banstur.financeiro.vo.FinReceber</class>
<class>br.com.banstur.financeiro.vo.FinReceberReserva</class>
<class>br.com.banstur.financeiro.vo.FinReceberManutencao</class>
<class>br.com.banstur.financeiro.vo.FinReceberJoia</class>
<class>br.com.banstur.geral.vo.AgenciaVO</class>
<class>br.com.banstur.geral.vo.BancoVO</class>
<class>br.com.banstur.geral.vo.BnsDiasSemana</class>
<class>br.com.banstur.geral.vo.CargoVO</class>
<class>br.com.banstur.geral.vo.CartaoCreditoVO</class>
<class>br.com.banstur.geral.vo.CidadeVO</class>
<class>br.com.banstur.geral.vo.ClienteVO</class>
<class>br.com.banstur.geral.vo.CondPagamentoVO</class>
<class>br.com.banstur.geral.vo.ContaVO</class>
<class>br.com.banstur.geral.vo.ContratoVO</class>
<class>br.com.banstur.geral.vo.DigContaVO</class>
<class>br.com.banstur.geral.vo.EnderecoVO</class>
<class>br.com.banstur.geral.vo.FinReceberContratoVO</class>
<class>br.com.banstur.geral.vo.FormaPagamentoVO</class>
<class>br.com.banstur.geral.vo.FormatacaoVO</class>
<class>br.com.banstur.geral.vo.FormulacaoVO</class>
<class>br.com.banstur.geral.vo.GrupoBansturVO</class>
<class>br.com.banstur.geral.vo.MoedaVO</class>
<class>br.com.banstur.geral.vo.PaisVO</class>
<class>br.com.banstur.geral.vo.PeriocidadeVO</class>
<class>br.com.banstur.geral.vo.ProdutoVO</class>
<class>br.com.banstur.geral.vo.PropostaVO</class>
<class>br.com.banstur.geral.vo.RegiaoVO</class>
<class>br.com.banstur.geral.vo.RepresentanteVO</class>
<class>br.com.banstur.geral.vo.TarifaVO</class>
<class>br.com.banstur.geral.vo.TaxaManVO</class>
<class>br.com.banstur.geral.vo.TipoLogradouroVO</class>
<class>br.com.banstur.geral.vo.TipoProdutoVO</class>
<class>br.com.banstur.geral.vo.UfVO</class>
<class>br.com.banstur.hoteis.vo.HotAcomodacoes</class>
<class>br.com.banstur.hoteis.vo.HotApartamentos</class>
<class>br.com.banstur.hoteis.vo.HotCalendarios</class>
<class>br.com.banstur.hoteis.vo.HotContratos</class>
<class>br.com.banstur.hoteis.vo.HotContratosServicosTarif</class>
<class>br.com.banstur.hoteis.vo.HotContratosServicosTarifDif</class>
<class>br.com.banstur.hoteis.vo.HotContratosTarifario</class>
<class>br.com.banstur.hoteis.vo.HotContratosTarifarioDif</class>
<class>br.com.banstur.hoteis.vo.HotContratosValores</class>
<class>br.com.banstur.hoteis.vo.HotGrupoServico</class>
<class>br.com.banstur.hoteis.vo.HotHoteis</class>
<class>br.com.banstur.hoteis.vo.HotHoteisEnderecos</class>
<class>br.com.banstur.hoteis.vo.HotLocalizacoes</class>
<class>br.com.banstur.hoteis.vo.HotModelosCalendarios</class>
<class>br.com.banstur.hoteis.vo.HotModelosDetalhes</class>
<class>br.com.banstur.hoteis.vo.HotPaxHotel</class>
<class>br.com.banstur.hoteis.vo.HotPromocoesHoteis</class>
<class>br.com.banstur.hoteis.vo.HotRedes</class>
<class>br.com.banstur.hoteis.vo.HotRestricoesHoteis</class>
<class>br.com.banstur.hoteis.vo.HotServicosHoteis</class>
<class>br.com.banstur.hoteis.vo.HotServicosTarif</class>
<class>br.com.banstur.hoteis.vo.HotServicosTarifDif</class>
<class>br.com.banstur.hoteis.vo.HotTarifario</class>
<class>br.com.banstur.hoteis.vo.HotTarifarioDif</class>
<class>br.com.banstur.hoteis.vo.HotTemporadas</class>
<class>br.com.banstur.hoteis.vo.HotTiposClasses</class>
<class>br.com.banstur.hoteis.vo.HotTiposPromocoes</class>
<class>br.com.banstur.hoteis.vo.HotTiposRestricoes</class>
<class>br.com.banstur.log.vo.LogSys</class>
<class>br.com.banstur.log.vo.LogSysDetail</class>
<class>br.com.banstur.reservas.vo.AnoDireitoVO</class>
<class>br.com.banstur.reservas.vo.DiariaContratoVO</class>
<class>br.com.banstur.reservas.vo.DiariasAdicionaisVO</class>
<class>br.com.banstur.reservas.vo.FinDataDebito</class>
<class>br.com.banstur.reservas.vo.RegistradaHotelVO</class>
<class>br.com.banstur.reservas.vo.RegistradaVO</class>
<class>br.com.banstur.reservas.vo.ReservaVO</class>
<class>br.com.banstur.reservas.vo.RsvApartPax</class>
<class>br.com.banstur.reservas.vo.RsvApartPaxQtd</class>
<class>br.com.banstur.reservas.vo.RsvPesquisaHotel</class>
<class>br.com.banstur.reservas.vo.RsvPesquisaIndicacoes</class>
<class>br.com.banstur.reservas.vo.RsvRegistradasHoteisContatos</class>
<class>br.com.banstur.reservas.vo.ServicosReservaVO</class>
<class>br.com.banstur.seguranca.vo.DepartamentoVO</class>
<class>br.com.banstur.seguranca.vo.GrupoVO</class>
<class>br.com.banstur.seguranca.vo.OperadorVO</class>
<class>br.com.banstur.seguranca.vo.PermissaoVO</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="toplink.cache.shared.DepartamentoVO" value="false"/>
<property name="toplink.cache.shared.GrupoVO" value="false"/>
<property name="toplink.cache.shared.OperadorVO" value="false"/>
<property name="toplink.cache.shared.PermissaoVO" value="false"/>
<property name="toplink.cache.shared.PaisVO" value="false"/>
<property name="toplink.cache.shared.RegiaoVO" value="false"/>
<property name="toplink.cache.shared.TipoLogradouroVO" value="false"/>
<property name="toplink.cache.shared.UfVO" value="false"/>
<property name="toplink.cache.shared.CidadeVO" value="false"/>
<property name="toplink.cache.shared.TaxaManVO" value="false"/>
<property name="toplink.cache.shared.MoedaVO" value="false"/>
<property name="toplink.cache.shared.ProdutoVO" value="false"/>
<property name="toplink.cache.shared.GrupoBansturVO" value="false"/>
<property name="toplink.cache.shared.TipoProdutoVO" value="false"/>
<property name="toplink.cache.shared.BancoVO" value="false"/>
<property name="toplink.cache.shared.ContaVO" value="false"/>
<property name="toplink.cache.shared.AgenciaVO" value="false"/>
<property name="toplink.cache.shared.FormatacaoVO" value="false"/>
<property name="toplink.cache.shared.DigContaVO" value="false"/>
<property name="toplink.cache.shared.FormulacaoVO" value="false"/>
<property name="toplink.cache.shared.FormaPagamentoVO" value="false"/>
<property name="toplink.cache.shared.CondPagamentoVO" value="false"/>
<property name="toplink.cache.shared.RepresentanteVO" value="false"/>
<property name="toplink.cache.shared.EnderecoVO" value="false"/>
<property name="toplink.cache.shared.PropostaVO" value="false"/>
<property name="toplink.cache.shared.ClienteVO" value="false"/>
<property name="toplink.cache.shared.ContratoVO" value="false"/>
<property name="toplink.cache.shared.CartaoCreditoVO" value="false"/>
<property name="toplink.cache.shared.PeriocidadeVO" value="false"/>
<property name="toplink.cache.shared.FinReceberContratoVO" value="false"/>
<property name="toplink.cache.shared.TarifaVO" value="false"/>
<property name="toplink.cache.shared.BnsDiasSemana" value="false"/>
<property name="toplink.cache.shared.CargoVO" value="false"/>
<property name="toplink.cache.shared.HotTiposServicos" value="false"/>
<property name="toplink.cache.shared.HotPromocoesHoteis" value="false"/>
<property name="toplink.cache.shared.HotLocalizacoes" value="false"/>
<property name="toplink.cache.shared.HotHoteisEnderecos" value="false"/>
<property name="toplink.cache.shared.HotTemporadas" value="false"/>
<property name="toplink.cache.shared.HotCalendarios" value="false"/>
<property name="toplink.cache.shared.HotRedes" value="false"/>
<property name="toplink.cache.shared.HotRestricoesHoteis" value="false"/>
<property name="toplink.cache.shared.HotServicosTarif" value="false"/>
<property name="toplink.cache.shared.HotServicosTarifDif" value="false"/>
<property name="toplink.cache.shared.HotServicosHoteis" value="false"/>
<property name="toplink.cache.shared.HotTiposClasses" value="false"/>
<property name="toplink.cache.shared.HotTiposPromocoes" value="false"/>
<property name="toplink.cache.shared.HotTiposRestricoes" value="false"/>
<property name="toplink.cache.shared.HotHoteis" value="false"/>
<property name="toplink.cache.shared.HotAcomodacoes" value="false"/>
<property name="toplink.cache.shared.HotApartamentos" value="false"/>
<property name="toplink.cache.shared.HotTarifario" value="false"/>
<property name="toplink.cache.shared.HotTarifarioDif" value="false"/>
<property name="toplink.cache.shared.HotelReservaVO" value="false"/>
<property name="toplink.cache.shared.HotGrupoServico" value="false"/>
<property name="toplink.cache.shared.HotPaxHotel" value="false"/>
<property name="toplink.cache.shared.AnoDireitoVO" value="false"/>
<property name="toplink.cache.shared.DiariaContratoVO" value="false"/>
<property name="toplink.cache.shared.ReservaVO" value="false"/>
<property name="toplink.cache.shared.ServicosReservaVO" value="false"/>
<property name="toplink.cache.shared.RegistradaVO" value="false"/>
<property name="toplink.cache.shared.RegistradaHotelVO" value="false"/>
<property name="toplink.cache.shared.RsvApartPaxQtd" value="false"/>
<property name="toplink.cache.shared.RsvApartPax" value="false"/>
<property name="toplink.cache.shared.RsvPesquisaHotel" value="false"/>
<property name="toplink.cache.shared.RsvPesquisaIndicacoes" value="false"/>
<property name="toplink.cache.shared.HotContratos" value="false"/>
<property name="toplink.cache.shared.HotContratosValores" value="false"/>
<property name="toplink.cache.shared.HotContratosTarifario" value="false"/>
<property name="toplink.cache.shared.HotContratosTarifarioDif" value="false"/>
<property name="toplink.cache.shared.HotContratosServicosTarif" value="false"/>
<property name="toplink.cache.shared.HotContratosServicosTarifDif" value="false"/>
<property name="toplink.cache.shared.RsvRegistradasHoteisContatos" value="false"/>
<property name="toplink.cache.shared.LogSys" value="false"/>
<property name="toplink.cache.shared.LogSysDetail" value="false"/>
<property name="toplink.cache.shared.HotModelosCalendarios" value="false"/>
<property name="toplink.cache.shared.HotModelosDetalhes" value="false"/>
<property name="toplink.cache.shared.DiariasAdicionaisVO" value="false"/>
<property name="toplink.cache.shared.HotModelosCalendarios" value="false"/>
<property name="toplink.cache.shared.HotModelosDetalhes" value="false"/>
<property name="toplink.cache.shared.DiariasAdicionaisVO" value="false"/>
<property name="toplink.cache.shared.FinReceber" value="false"/>
<property name="toplink.cache.shared.FinReceberReserva" value="false"/>
<property name="toplink.cache.shared.FinReceberManutencao" value="false"/>
<property name="toplink.cache.shared.FinReceberJoia" value="false"/>
<property name="toplink.cache.shared.FinPagar" value="false"/>
<property name="toplink.cache.shared.FinPagarReserva" value="false"/>
</properties>
</persistence-unit>
</persistence>
Mas gostaria de saber se existe uma forma mais simples de fazer e se é possivel usar o eclipselink-2.0 no glassfish 2.1.
Até onde eu sei não existe limitação nenhuma quanto a usar o JPA2 no Glassfishv2.1. Quanto a um modo mais simples, essa eu ficar te devendo pois eu não uso o toplink. Aqui no trampo nós usamos o hibernate como provider do JPA2. A propósito, se vc estiver usando o JPA vc pode simplesmente habilitar o cache seletivo ou desabilitar por completo o cache compartilhado.
<?xml version="1.0" encoding="UTF-8"?>
<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="bns_financeiroPU" transaction-type="JTA">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<jta-data-source>jdbc/bns_sys</jta-data-source>
<jar-file>bns_sys_jpa.jar</jar-file>
<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode><!-- ou simplesmente NONE -->
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
...
</properties>
</persistence-unit>
</persistence>