Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 21 Próxima »

Introdução

Populate é um arquivo JSON que serve para popular automaticamente entidades JPA. Esse arquivo já é criado automaticamente nos projetos do Cronapp pois ele é utilizado com o intuito de popular a entidade User com os dados do admin e, com isso, poder dá acesso a página que somente os usuários autenticados podem utilizar. No entanto, caso queira adicionar outros dados para popular as tabelas automaticamente, fique a vontade.

Importante

Trabalhar com versionamento e realizar commits tornam esses dados que estão inseridos nesses arquivos expostos para todos que tiverem acesso.


Figura 1 - Arquivo populate.json

Utilizando o populate.json

Será apresentado um exemplo geral, utilizando uma classe sem nenhum relacionamento para demonstrar a estrutura de como realiza a inserção dos dados através desse arquivo. Após, serão apresentados exemplos para cada tipo de relacionamento para mostrar suas diferenças (ou suas especificações).

Estrutura básica

O primeiro exemplo a ser utilizado será da classe da Figura 2.1. Essa classe possui quatro campos:

  • id: tipo TEXTO;
  • titulo: tipo TEXTO;
  • episodio: tipo INTEIRO;
  • completo: tipo LOGICO.

Figura 2.1 - Classe sem relacionamento

Para inserir dados nessa classe através do arquivo, você precisa especificar a classe e todos os seus campos. Para indicar a classe, você adiciona a chave "_class" e o seu valor é o "caminho" (Figura 2.2) onde encontra a classe ("namespace.pacote.nomedaclasse" - sem a extensão .java). No exemplo da Figura 2.1, ele ficará do seguinte modo: "_class" : "app.Entity.Anime"


Figura 2.2 - Caminho: namespace.pacote.nomedaclasse


Observação

Quando uma camada de dados é criada para uma classe, os arquivos gerados são salvos automaticamente no pacote Entity dentro do namespace app. Caso os arquivos gerados da classe estejam em outro namespace ou pacote, será preciso mudar o valor do "caminho" no arquivo json para essa classe.

Assim como a descrição da classe, os seus campos também são especificados da mesma maneira - por chave / valor. No entanto, a diferença fica por conta do _ (underline) que não existe nas chaves referenciadas do campo - como mostrado abaixo. Além disso, os valores dos campos precisam estar em conforme como o banco ler.

"id": "7A0DCC99-668B-4E28-8EE0-90D607CDAB5D",

"titulo": "Naruto",

"episodio": 700,

"completo": true


Resultado final
[
	{
		"_class" : "app.Entity.Anime",
		"id": "7A0DCC99-668B-4E28-8EE0-90D607CDAB5D",
		"titulo": "Naruto",
		"episodio": 700,
		"completo": true
	}
]

Duas coisas importantes a serem notadas são os colchetes e as vírgulas. O par de colchetes é usado uma única vez no arquivo, ele vai englobar todos objetos e cada objeto deve ser separado por vírgula.

Comportamento do arquivo para relacionamento 1-1 e 1-N


Comportamento do arquivo para relacionamento N-M

Nessa página

  • Sem rótulos