У меня есть 10-15 объектов в моей локальной базе данных postgres.Все сущности содержат одну идентичность типа Integer.См. Фрагмент кода ниже.
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", unique = true, nullable = false)
@NonNull
private Integer id;
Мой класс CRUD (это моя сущность) содержит метод create для вставки новых сущностей в соответствующую таблицу
private final JpaRepository<T, Integer> jpaRepository;
private final EntityManager entityManager;
private final Class<T> clazz;
@Override
public T create(T entity) {
return getJpaRepository().saveAndFlush(entity);
}
Я пытаюсь достичь следующейцели:
- Если я вызываю метод create, в котором сущность содержит некоторое значение (
!= null
) для поля id, то сохраняйте его точно с этим идентификатором (не генерируется). - Если я вызываюсоздать метод, в котором сущность содержит значение
== null
, а затем создать его с автоматически сгенерированным идентификатором в качестве базы данных.
Зачем мне это нужно?Я пытаюсь заполнить небольшую базу данных в памяти объектами, которые я извлекаю из объекта JSON, и сохраняю их с теми же идентификаторами.
Моя проблема в том, что аннотация @GeneratedValue(strategy = GenerationType.AUTO/SEQUENCE/TABLE/IDENTITY)
не дает мне таких вещей.Если я удалю аннотацию GeneratedValue
, тогда значения null
будут обрабатываться неправильно.
Я буду очень признателен за ваши предложения.
Добавить комментарийКоллапс