Обработка составного первичного ключа с помощью JPA
Версионирование данных требует возможности дублировать объект с разными версиями, поэтому создание составного ключа крайне важно первичный ключ для сущностей.
Определение сущности с составным первичным ключом Ключ
В JPA составные первичные ключи могут быть определены с использованием аннотаций @EmbeddedId или @IdClass.
Использование @EmbeddedId
Определите отдельный класс (@Embeddable annotated) для ключа, а затем аннотируйте его с помощью @EmbeddedId в сущности:
@Entity
public class YourEntity {
@EmbeddedId
private MyKey myKey;
private String columnA;
// getters and setters
}
@Embeddable
public class MyKey implements Serializable {
private int id;
private int version;
// getters and setters
}
Использование @IdClass
Альтернативно добавьте к классу аннотацию @IdClass и определите атрибуты ID как @Id внутри класса:
@Entity
@IdClass(MyKey.class)
public class YourEntity {
@Id
private int id;
@Id
private int version;
}
public class MyKey implements Serializable {
private int id;
private int version;
}
Дублирование объектов с помощью версий
После того как объект определен, его можно продублировать с использованием новой версии. Например, чтобы создать новую версию первой сущности с id=1:
YourEntity newVersion = new YourEntity();
newVersion.setMyKey(new MyKey(1, 1)); // new version
newVersion.setColumnA("Some Other Data");
entityManager.persist(newVersion);
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3