ti-enxame.com

Várias tags de unidade de persistência em um persistence.xml

Estou trabalhando agora com um projeto JPA 2.0 (no Eclipse Indigo). No meu arquivo persistence.xml, preciso especificar duas tags <persistence-unit>, porque tenho dois bancos de dados diferentes para trabalhar. Fazendo isso, recebo o seguinte aviso:

Múltiplas unidades de persistência definidas - somente a primeira unidade de persistência será reconhecida

Ainda mais, se eu criar minhas entidades e colocá-lo na minha segunda <unidade de persistência>, recebo um erro dizendo que minha entidade não é declarada em uma unidade de persistência:

A classe "my.package.MyClass" é mapeada, mas não está incluída em nenhuma unidade de persistência

Portanto, a questão é: é possível declarar (e usá-las conforme o esperado) muitas tags <persistence-unit> no arquivo persistence.xml? Se sim, o que preciso fazer para obter o comportamento exato?

Obrigado!

32
artaxerxe

A JPA não limita o número de unidades de persistência definidas em persistence.xml. Este aviso apenas informa sobre a limitação da ferramenta no Eclipse IDE. Isto é dito, por exemplo, aqui http://www.Eclipse.org/webtools/dali/gettingstarted.php :

Atualmente, o Dali suporta apenas uma unidade de persistência e um arquivo XML de persistência por projeto. Outras configurações podem existir em um projeto JPA, mas o processamento de validação e padrões pode não estar correto quando várias unidades de persistência são usadas.

Acho que não há uma maneira conhecida de obter esse trabalho no Eclipse IDE.

42
Mikko Maunu

Embora isso seja válido para JPA, você também pode desativar as notificações de erro resultantes (irritantes) por projeto, entrando em

Project Properties => JPA => Errors/Warnings

Ativar Enable project specific settings e em Type, altere o nível de notificação para Class is mapped but is not in a persistence unit de Error para qualquer outra coisa com a qual você se sinta confortável.

Atualização para o Eclipse Luna:

A localização e o nome da configuração foram alterados no Luna. O novo local é:

Project Properties => JPA => Errors/Warnings

Verifica Enable project specific settings

Expanda Project group

Mudança Multiple persistence units defined: para Ignore.

enter image description here

29
VH-NZZ