@GeneratedValue(стратегии =GenerationType.AUTO) не создает идентификатор для встроенной установки
У меня есть следующие настройки базы данных с использованием Spring и Hibernate в качестве разработчика JPA. У меня есть класс сущности, расширяющий org.springframework.data.jpa.domain.AbstractPersistable, который в основном определяет атрибут id со стратегией генерации AUTO.
Если все прочитать правильно, это будет означать, что за создание идентификатора отвечает разработчик JPA, в моем случае Hibernate.
Он работает для реальной установки с использованием PostgreSQL, но не для этой встроенной установки:
<jdbc:embedded-database id="dataSource" type="HSQL">
<jdbc:script location="classpath:/sql/schema.sql" />
</jdbc:embedded-database>
<bean
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform" value="org.hibernate.dialect.HSQLDialect" />
</bean>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
Класс сущности
@Entity
public class Account extends AbstractPersistable<Long> {
private static final long serialVersionUID = 1L;
@NotNull
@Size(min=1, max=25)
private String name;
}