Quiero tener versiones de la misma entrada de datos. En otras palabras, quiero duplicar la entrada con otro número de versión.
id - Version será la clave principal.
¿Cómo debería verse la entidad? ¿Cómo puedo duplicarlo con otra versión?
id Version ColumnA
1 0 Some data
1 1 Some Other data
2 0 Data 2. Entry
2 1 Data
java
jakarta-ee
jpa
composite-primary-key
Kayser
fuente
fuente

@IdClassanotación, otro consejo que encontré es que la@Columnanotación debe ir a los campos de la clase Entity (YourEntityen el código de muestra de RohitJan).Respuestas:
Puede hacer un
Embedded class, que contiene sus dos claves, y luego tener una referencia a esa clase comoEmbeddedIden suEntity.Necesitaría las anotaciones
@EmbeddedIdy@Embeddable.Otra forma de lograr esta tarea es usar la
@IdClassanotación y colocar ambosiden ellaIdClass. Ahora puede usar la@Idanotación normal en ambos atributosfuente
@Generatedvaluepara la identificación de por EmbeddedId@GeneratedValuesolo se puede utilizar para generar valores de clave para una clave principal, no puede generar combinaciones para claves compuestas.La clase MyKey debe implementarse
Serializablesi está utilizando@IdClassfuente
Clase clave:
Clase de entidad:
¿Cómo puedo duplicarlo con otra versión?
Puede separar la entidad que se recuperó del proveedor, cambiar la clave de Entrada y luego conservarla como una nueva entidad.
fuente
AUTOGENERATED. o algo así@GeneratedValue(strategy = GenerationType.IDENTITY)hashyprimeen el métodohashCodeen la claseEntryKey, me puede decir donde esta idea proviene de?La clase MyKey (@Embeddable) no debe tener relaciones como @ManyToOne
fuente