@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;
}

0 ответов

Другие вопросы по тегам