Ho dei dubbi su quale sia il tipo migliore per un campo annotato con @Version per il blocco ottimistico in JPA.Miglior tipo per campo versione JPA per blocco ottimistico
Javadoc API (http://docs.oracle.com/javaee/7/api/javax/persistence/Version.html) dice:
"I seguenti tipi sono supportati per le proprietà di versione: Int., Integer, breve, breve, lunga, lunga, java.sql.Timestamp"
In altra pagina (http://en.wikibooks.org/wiki/Java_Persistence/Locking#Optimistic_Locking) dice:..
"APP sostiene utilizzando una versione campo blocco ottimistico che viene aggiornato ad ogni aggiornamento Il campo può essere sia numerico o un valore timestamp Un valore numerico è raccomandato come un il valore numerico è più preciso, portatile, performante e più facile da gestire rispetto a un timestamp ".
"bloccaggio Timestamp viene frequentemente utilizzato se la tabella contiene già una ultima colonna timestamp aggiornamento, ed è anche un modo conveniente per l'aggiornamento automatico last colonna aggiornata. Il valore versione timestamp può essere più utile di una versione numerico, poiché include le informazioni rilevanti su quando l'oggetto è stato aggiornato l'ultima volta. "
Le domande che ho sono:
è meglio un tipo Timestamp se avete intenzione di avere un campo lastUpdated o è meglio avere un campo versione numerica e il timestamp in altri campi?
Tra tipi numerici (int, intero, breve, corto, lungo, lungo) che è il migliore da scegliere (considerando la lunghezza di ciascun tipo)? Voglio dire, penso che il meglio sia Long ma richiede molto spazio per ogni riga.
Cosa succede quando il campo versione raggiunge l'ultimo numero di un tipo numerico (ad esempio 32.767 in un campo breve)? Ricomincerà da 1 nel prossimo incremento?