Criei um atributo matricula e quero que ele seja gerado automaticamente e incrementado a partir de um valor.
Exemplo: iniciar em 4500 e incrementar de 1 em 1.
Como faço isso no Hibernate?
Criei um atributo matricula e quero que ele seja gerado automaticamente e incrementado a partir de um valor.
Exemplo: iniciar em 4500 e incrementar de 1 em 1.
Como faço isso no Hibernate?
Você pode criar seu próprio gerador de IDs:
Sua Entidade:
@Entity
public class SuaEntidade {
@Id
@GenericGenerator(name = "nomeGerador", strategy = "sua.classe.geradora.GeradorIdCustomizado")
@GeneratedValue(generator = "nomeGerador")
@Column(name="column_id")
private String id; // o tipo do objeto vai depender do que sua classe geradora de ID retornar
}
Classe geradora do ID:
package sua.classe.geradora;
import java.io.Serializable;
import org.hibernate.HibernateException;
import org.hibernate.engine.spi.SessionImplementor;
import org.hibernate.id.IdentifierGenerator;
public class GeradorIdCustomizado implements IdentifierGenerator {
@Override
public Serializable generate(SessionImplementor session, Object object)
throws HibernateException {
String generatedId = "";
// Lógica para gerar o ID
return generatedId;
}
}