Gerar UUID automaticamente e manualmente | Spring

159 views
Skip to first unread message

Jefferson Sousa

unread,
Jan 28, 2021, 8:08:24 AM1/28/21
to java.ce
Bom dia, grupo!

Estou trabalhando numa aplicação e já tenho as tabelas com id (UUID) automático com a annotation @GeneratedValue. 

Como preciso sincronizar tabelas de dois bancos, a regra de negócio é fazer update se já existir a Row, se não existir, criar uma nova Row mas com o id enviado no Json, por exemplo. 

Att.,
Jefferson Sousa

Rafael Ponte

unread,
Jan 28, 2021, 8:35:04 AM1/28/21
to javace
Oi Jefferson,

não entendi sua dúvida.

--
Você recebeu essa mensagem porque está inscrito no grupo "java.ce" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para javace+un...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/javace/3d6968cb-70d1-4bed-b3a3-6ca03afea032n%40googlegroups.com.


--

Desobediente

unread,
Jan 28, 2021, 8:50:27 AM1/28/21
to jav...@googlegroups.com
Na maioria dos casos o Sistema Gerenciador de Banco de Dados (OracleDB, MariDB/MySQL, etc.) faz isto e não há necessidade de refazer a funcionalidade no aplicativo.

Jefferson Sousa

unread,
Jan 28, 2021, 8:55:56 AM1/28/21
to java.ce
Preciso fazer merge entre dois bancos (duas tabelas). Estou usando o método save do JpaRepository para criar ou atualizar uma linha de uma determinada tabela/entidade de acordo com a condição dessa linha existir ou não. Ao mandar o objeto no save, gostaria de que ao criar uma nova linha no banco fosse utilizado o Id que mandei no body da requisição. 

De antemão sei que não há chance de duplicidade de dados porque o Id enviado na requisição é verificado primeiro se existe na tabela. 

Jefferson Sousa

unread,
Jan 28, 2021, 1:39:43 PM1/28/21
to java.ce
Consegui resolver anotando o id apenas com @Id e sem o @GeneratedValue. Para o caso de criar uma linha com Id aleatório (não o cedido no body/json), uso um setter para o id gerando um randômico com " UUID.randomUUID() ".


Pode ser que o meu problema não tenha ficado claro, mas inicialmente era isso que precisava. 

Obrigado.
Reply all
Reply to author
Forward
0 new messages