Hibernate JPA генерирует тонны sequence.nextval запросов для объекта oneToMany - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть родительская таблица и дочерняя таблица.Родитель может содержать много дочерних записей.Всякий раз, когда я делаю родительское сохранение, он генерирует множество select операторов для генерации последовательности каждой дочерней записи.
select ITEM_SEQ,nextval from dual

Есть ли способ избежать этого.Я ищу прямое утверждение, которое не даст этому поколению nextval повышение производительности.

@Entity
@Table(name="Bucket")
public class Bucket {
Long id;

@OneToMany(mappedBy = "bucket", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
private Set<Item> items = new TreeSet<>();
.....
....
}



@Entity
@Table(name = "Item")
public class Item {



    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ItemGenerator")
    @SequenceGenerator(name = "ItemGenerator", sequenceName = "ITEM_SEQ", allocationSize = 1)
    @Column(name = "ITEM_SEQ")
    private Long id;
...
...
}

1 Ответ

1 голос
/ 04 апреля 2019

GenerationType.SEQUENCE требуется дополнительный вызов для получения нового идентификатора из последовательности БД.Это не проблема производительности в большинстве приложений.Если вы не хотите, чтобы это произошло, используйте GenerationType.IDENTITY.

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