Adding this question for documentation purpose, and to check if there is any alternative solution.
I have an entity which has a composite key defined using @IdClass
data class TemplateId(var id: Long? = null, var version: Int = 0) : Serializable
@Entity
@IdClass(TemplateId::class)
data class Template(
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
@SequenceGenerator(name = "sequenceGenerator")
var id: Long? = null,
@Id
@Column(name = "version")
var version: Int
//Other columns
)
Idea is to have same ID for different versions of the Template
. Using Sequence generator works as expected while inserting new template.
But when I try to insert a new version row with same ID, @GeneratedValue
overrides the given value and autoincrements to new value.
Solution mentioned in JPA: Override Auto generated ID
does not work.