«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как генерировать последовательности баз данных для столбцов, не связанных с ID, в Hibernate JPA?

Как генерировать последовательности баз данных для столбцов, не связанных с ID, в Hibernate JPA?

Опубликовано в 2025-04-17
Просматривать:387

How Can I Generate Database Sequences for Non-ID Columns in Hibernate JPA?

Использование последовательности базы данных для столбцов, не связанных с ID, в Hibernate JPA

при работе с Hibernate в качестве провайдера JPA, вы можете столкнуться с необходимостью генерировать значения для столбцов, которые не являются частью идентификатора. К сожалению, аннотация @GeneratedValue, обычно используемая для автоматического инкюрения первичных ключей, не применима в этом сценарии.

, во-первых, важно понимать, что Hibernate/JPA не генерирует значения для не ID. Аннотация @GeneratedValue используется исключительно для управления первичным поколением ключей. Вместо этого ожидаются значения, сгенерированные базой данных. Затем рассматриваемый столбец, не связанный с ID, может быть связан с этой суррогатной сущностью с использованием отношения Onetoone.

Пример реализации:

// Суррогатная ключевая сущность @Сущность суррогата публичного класса { @Идентификатор @GeneratedValue (...) частное длинное число; } // главная сущность @Сущность Public Class Myentity { @Идентификатор частный длинный идентификатор; @Onetoone (...) Частная суррогата Myval; }

// Surrogate Key Entity
@Entity
public class SurrogateEntity {
  @Id
  @GeneratedValue(...)
  private Long number;
}

// Main Entity
@Entity
public class MyEntity {
  @Id
  private Long id;

  @OneToOne(...)
  private SurrogateEntity myVal;
}
]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3