Только сохранять, а не обновлять, используя данные JPA и CrudRepository - PullRequest
0 голосов
/ 08 декабря 2018

В моем приложении есть ситуация, когда я хочу сохранить новые записи.Я использую метод сохранения () Crudrepository.Как мы все знаем, что save () будет делать, если запись отсутствует, и обновлять, если она найдена.

Но я хочу ограничить операцию обновления.Например, если запись уже доступна, не обновляйте и не сохраняйте эту запись.

Допустим, ниже приведен наш класс сущностей с составным ключом.и на основе составного ключа мы хотим сделать эту операцию.

Класс сущности

@Entity
@IdClass(PrescriptionKey.class)
public class Prescription implements Serializable{

  @GeneratedValue(strategy=GenerationType.AUTO)
  @Column(name="prescription_id")
  private int prescriptionId;

  @Id
  @Column(name="dose_id")
  private int doseId;

  @Id
  @Column(name="med_id")
  private int medId;

  //Setter Getters
}

Класс составного ключа

 public class PrescriptionKey implements Serializable {

  private int doseId;

  private int medId;

  //Setter Getter
}

Пусть говорят каждый раз, когда данные поступают дляОперация сохранения содержит новые данные вместе со старыми, которые уже были сохранены.Теперь мы хотим выполнить сохранение только для новых данных.

1 Ответ

0 голосов
/ 05 июня 2019

Иногда это может быть рецепт, который вы пытаетесь обновить, не найден.Автоматически генерируемый prescriptionId, предоставляемый jpa, меньше чем prescriptionId, который вы пытаетесь обновить.Поэтому JPA создает новую запись с автоматически сгенерированным prescriptionId вместо prescriptionId, который вы пытаетесь обновить.

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