Anotace @SequenceGenerator
se používá k určení generátoru primárních klíčů pro tabulku. Na tento generátor je odkazováno z anotace @GeneratedValue
.
name – Název generátoru, který musí být unikátní.
sequenceName – Název sekvence v databázi. Je to sekvence, která již v databázi existuje.
allocationSize – Musí být stejná jako hodnota „auto incerement“ sekvence v databázi.
import cz.vitfo.entity.CustomerEntity.Companion.GENERATOR_NAME import cz.vitfo.entity.CustomerEntity.Companion.SEQUENCE_NAME import cz.vitfo.entity.CustomerEntity.Companion.TABLE_NAME import javax.persistence.Entity import javax.persistence.GeneratedValue import javax.persistence.GenerationType import javax.persistence.Id import javax.persistence.SequenceGenerator import javax.persistence.Table @Entity @Table(name = TABLE_NAME) @SequenceGenerator(name = GENERATOR_NAME, sequenceName = SEQUENCE_NAME, allocationSize = 1) class CustomerEntity( @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = GENERATOR_NAME) var id: Long ) { companion object { const val TABLE_NAME = "t_customer" const val SEQUENCE_NAME = "${TABLE_NAME}_id_seq" const val GENERATOR_NAME = "${SEQUENCE_NAME}_gen" } }