Gerar uma unique Key, onde contenha o mês e o ano corrente usando JPA

Boa noite pessoal.

To fazendo uma aplicação que a chave que vai identificar uma ordem de serviço deve conter o mês corrente o ano e um numero, e a cada final de mês, esse numero, que pode ser um INT, reseta.

Para ser sincero, eu nunca fiz nada parecido, então não sei nem por onde começar as minhas pesquisas.

Será que alguém tem alguma dica de material, exemplo de código para ajudar ou indicação do que pesquisar para conseguir fazer isso?

Respeitosamente.

Só uma visão geral aqui, que talvez possa ajudar:

  • Eu pelo menos não utilizaria essa chave como chave primária. Criaria uma chave sintética mesmo (auto-increment ou sequence) pra ser chave primária, e deixaria essa chave como chave de negócio (índice unique).

  • Você vai precisar de uma tabela pra armazenar o último número gerado pra cada mes e/ou ano.

  • Por último mas não menos importante, você certamente vai precisar fazer um “lock pessimista” a nível de banco no momento em que o número do mes está sendo verificado e/ou atualizado, isso pra evitar que problemas de concorrência com dois usuários recuperando o mesmo número.