Java Jpa @GeneratedValue интеллектуальная генерация для нулевых и ненулевых значений - PullRequest
0 голосов
/ 31 мая 2018

У меня есть 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);
}

Я пытаюсь достичь следующейцели:

  1. Если я вызываю метод create, в котором сущность содержит некоторое значение (!= null) для поля id, то сохраняйте его точно с этим идентификатором (не генерируется).
  2. Если я вызываюсоздать метод, в котором сущность содержит значение == null, а затем создать его с автоматически сгенерированным идентификатором в качестве базы данных.

Зачем мне это нужно?Я пытаюсь заполнить небольшую базу данных в памяти объектами, которые я извлекаю из объекта JSON, и сохраняю их с теми же идентификаторами.

Моя проблема в том, что аннотация @GeneratedValue(strategy = GenerationType.AUTO/SEQUENCE/TABLE/IDENTITY) не дает мне таких вещей.Если я удалю аннотацию GeneratedValue, тогда значения null будут обрабатываться неправильно.

Я буду очень признателен за ваши предложения.

Добавить комментарийКоллапс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...