Criar Método para Id que não é AutoIncrmento

Boa tarde pessoal.

Estou com um probleminha. Estou tentando migrar um sistema meu que é em Delphi para java. Na fase ainda do back end, tenho um problema.

A minha tabela de produtos não tem o id que é representado pelo nome pr_codigo não é auto incremento ou seja, eu pego o maior número da tabela PRODUTO e adiciono mais 1.

Neste sistema isso é uma particularidade que é necessária, ou seja, não tem como ser auto incremento. A minha classe repository está representada assim :

image

A minha entidade Produto esta assim :

image

Alguém tem ideia de como eu poderia implementar isso ?

Acredito que isso deva funcionar pra você!

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long pr_codido;

@Jonathan_Medeiros , obrigado pelo retorno. Mas é o seguinte : Quando eu coloco esta instrução que você colocou o meu banco de dados em que estar preparado para que o ID onde pr_codigo seja auto incremento.

Se eu colocar esta anotação ele vai reclamar um monte de erro. Ao retirar a aplicação funciona normalmente.

Da forma como você informou o a tabela PRODUTOS deveria ter o campo pr_código como auto incremento o que no meu caso não é verdade. No meu caso eu tenho que informar mais ou menos assim :
tabela PRODUTO, você vai pegar o maior numero do ID(pr_codigo) e adicionar mais 1. Com isso informar ao framerwork isso.

Você tem ideia de como isso pode acontecer ?

A maneira mais correta eu acredito que seria vc criar uma sequence pra essa tabela de produtos onde o start inicial dela seria o max(id).
Outra maneira seria recuperar o valor por uma query, como por exemplo:

SELECT COALESCE(MAX(ID), 0) + 1 FROM TABELA;

@Jonathan_Medeiros , você entendeu a minha ideia e o meu problema. No meu sistema em Delphi que eu utilizo atualmente eu utilizo uma query para recuperar este valor mesmo.

Vou tentar manter por este modo. De qualquer forma assim que conseguir alguma coisa eu coloco a solução identificada.

@Jonathan_Medeiros , graças a Deus consegui e para quem alguma dia precisar desta necessidade conforme eu segue a solução .

Não sei se ainda levando em consideração técnicas de botas práticas vai estar legal mas funcionou

No meu caso tenho uma classe ProdutoServices dentro do pacote conforme imagem

image

Dentro da classe o método de inserção ficou assim :

image

Além disso tem que ter a seguinte anotação no inicio da classe :

image

Se quiser fazer um teste com o Postman não precisa mais enviar o código do produto pois ele será gerenciado automaticamente.

Forma de enviar o Json

image