Данные пружины JPA вставляют ... значения с UUID2 - PullRequest
0 голосов
/ 14 апреля 2020

У меня проблема с hibernate и spring-data-jpa. Я работаю с java7 и пока не могу обновиться, я работаю с postgresql и jboss. У меня есть java класс с ссылкой subElement с @manyToOne и с этой конфигурацией Id:

@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "uuid2")
@Column(name = "id", columnDefinition = "uuid")
@Type(type = "car-uuid")
private UUID id;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_tab_C")
private TabC C;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_tab_B")
private TabB B;

Что я хочу, когда я использую Save (итерируемый) из SimpleJpaRepository (интерфейс CrudRepo), я хочу, чтобы мой bdd logs:

вставка в таблицу значений ($ 1), ($ 2) et c ...

У меня есть все свойства гибернации:

properties.put(ConfigConstant.HIBERNATE_JDBC_BATCH_SIZE, Dialect.DEFAULT_BATCH_SIZE);
properties.put(BATCH_VERSIONED_DATA, true);
properties.put("hibernate.order_inserts", "true");
properties.put("hibernate.order_updates", "true");

У меня также есть rewritebatchInsert = true в моем URL-адресе соединения с jboss, и он работает с jdbcTemplate (у меня есть пример кода в моем коде java, который его использует). Я не могу изменить все на jdbctemplate.

Я также пытался:

@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "uuid2")
@Column(name = "id", columnDefinition = "uuid")
@Type(type = "car-uuid")
private UUID id;

РЕДАКТИРОВАТЬ 15/04/2020 я попытался удалить пользовательский тип def для моего UUID и использовать pg-uuid но это не сработало:

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "uuid2")
@Column(name = "id", columnDefinition = "uuid")
@Type(type = "pg-uuid")  
private UUID id;

Операторы вставки журнала Hibernate 3, и мои журналы postgresql тоже. Я не могу найти, где моя ошибка ..

РЕДАКТИРОВАТЬ 2: Я наконец-то решил часть моей проблемы. Моя собственность hibernate.jdb c .batch_size была: hibernate.jdb c .batch.size Так что лучше, но: у меня есть список из 3 сущностей. Я использую springrepo SAVE (Iterable), и я получаю в своем pg_log:

Insert into tabA values (),() // 2 entity
Insert into tabA values () // 1 entity

Мой набор свойств:

properties.put("hibernate.jdbc.batch_size", "30");

Почему у меня не может быть:

Insert into tabA values (),(),() // 3 entity ?

спасибо за помощь, Счастливого кодирования;)

...