Я использую @UniqueConstraint в коде ниже. Когда я использую метод saveall () - PullRequest
0 голосов
/ 18 января 2019

Я использую @UniqueConstraint в приведенном ниже коде. Когда я использую saveall () метод сохранения данных, когда нарушение ограничения не удается для первого оставшиеся данные также не сохраняются.

   @Entity
    @Data
    @Table(uniqueConstraints = @UniqueConstraint(columnNames = { "tradeStartTime", "tradeEndTime", "contract" }))
public class TradingHours {
                @Id
                @GeneratedValue(strategy = GenerationType.IDENTITY)
                private Integer id;
                private ZonedDateTime tradeStartTime;
                private ZonedDateTime tradeEndTime;
                @ManyToOne
                @JoinColumn(name = "contract")
                private Contract contract;
}

1 Ответ

0 голосов
/ 18 января 2019

Я думаю, что нет способа продолжить массовую вставку после сбоя транзакции. Если вам нужно сохранить все оставшиеся значения, вы должны сохранить каждое значение отдельно в методе save(), помеченном как @Transactional(propagation = Propagation.REQUIRES_NEW), взгляните на docs . Вы также должны поймать DataIntegrityViolationException где-нибудь до тех пор, пока он не сломается.

...