Приложение
My Spring Boot 2 / Hibernate 5
выполняет некоторые интеграционные тесты для H2
версии сервера 1.4.197
.
Какой тип автоинкремента использует сервер базы данных?
- таблица, содержащая число, глобальное для всех таблиц
- последовательность 'hibernate_sequence', глобальная для всех таблиц?
- какой-нибудь столбец автоинкремента, по одному для каждой таблицы?
- какие-то нативные последовательности, по одной для каждой таблицы?
ОБНОВЛЕНИЕ: После комментариев приведена конфигурация аннотаций Hibernate:
@MappedSuperclass
public abstract class AbstractEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "id_native")
@GenericGenerator(name = "id_native", strategy = "native")
@Column(name = "id", updatable = false, nullable = false)
private Long id;
...
}
@Entity
@SequenceGenerator(name = "id_generator", sequenceName = "user_role_id_seq")
public class UserRole extends AbstractEntity {
...
}
А параметры подключения:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.datasource.driver-class-name=net.sf.log4jdbc.DriverSpy
spring.datasource.url=jdbc:log4jdbc:h2:file:./target/useraccounttest;DB_CLOSE_ON_EXIT=FALSE;IGNORECASE=TRUE
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.show-sql=true
Обратите внимание, что последовательность user_role_id_seq
предназначена для использования только базой данных Oracle
и, как мы надеемся, игнорируется базой данных H2
.