Sto provando a generare automaticamente chiavi primarie alfa-numeriche (ad es. TESLA1001) in Sospensione. Attualmente sto usando il database Oracle, quindi ho una chiamata JDBC a my_sequence.NEXTVAL
(1002) per incrementare il numero e aggiungere al prefisso (TESLA).Possiamo generare automaticamente chiavi primarie senza query o chiamate JDBC?
Consideriamo MySQL come un'opzione, ma non supportano le sequenze. Quindi sono costretto a riscrivere la tecnica di generazione di ID personalizzato usando la chiamata JDBC a una stored procedure.
C'è un modo in cui posso avere un'implementazione generica per generare chiavi primarie personalizzate senza l'utilizzo di JDBC e query dipendenti dal database? Quindi, in futuro, se avessi bisogno di testare la mia applicazione con MSSQL, ho bisogno di cambiare solo la mia configurazione hiberate e le cose funzionano bene!
Si dispone di autoIncrement con MySql –
Sì, ma l'autoincremento funziona solo per una tabella, è possibile eseguire una query su last_insert_id() da tutto ciò che è coinvolto se si dispone di più tabelle o se è possibile utilizzare i trigger. – maraca
Inoltre, non è troppo difficile implementare una sequenza utilizzando una stored procedure, ad es. sequenze di tabelle (nome, numero) e una procedura getNext (nome) che aumenta il numero di uno e lo restituisce. – maraca