Spring JPA Repository не может создать таблицы сопоставления моих сущностей - PullRequest
0 голосов
/ 30 мая 2018

Я использую данные пружины с базой данных H2, и она не создает таблицы базы данных для моих объектов сущности.

application.properties

spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:file:~/app_db
spring.datasource.username=sa
spring.datasource.password=sa

spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=create

DomainApplication.java

@SpringBootApplication
@Import(DefaultPersistenceConfig.class)
@EntityScan(basePackages = {"com.sample.Domain.modal"})
public class DomainApplication {

    public static void main(String[] args) {
        SpringApplication.run(DomainApplication.class, args);
    }
}

DefaultPersistanceConfig:

@Configuration
@EnableJpaRepositories(basePackages = {"com.sample.Domain.model" }, entityManagerFactoryRef = "defaultEntityManagerFactory", transactionManagerRef = "defaultTransactionManager")
@EnableTransactionManagement
public class DefaultPersistenceConfig {

    @Autowired
    public DataSource defaultDataSource;

    @Bean
    @Primary
    @Qualifier("defaultEntityManagerFactory")
    public LocalContainerEntityManagerFactoryBean defaultEntityManagerFactory(EntityManagerFactoryBuilder builder) {
        return builder.dataSource(defaultDataSource).persistenceUnit("hib-unit")
                .packages("com.sample.Domain.model").build();
    }

    @Bean
    @Primary
    @Qualifier("defaultTransactionManager")
    public PlatformTransactionManager defaultTransactionManager(EntityManagerFactory emf) {
        return new JpaTransactionManager(emf);
    }
}

Класс сущности:

@Entity
@Table(name = "GENERAL_LEDGER_TRANSACTION")
public class GeneralLedgerTransaction implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private Long id = 0L;
....

Интерфейс репозитория JPA:

@Repository
public interface GeneralLedgerTransactionRepository extends JpaRepository<GeneralLedgerTransaction, Long> {    
    }

Когда я запускаю приложение и делаю остальной вызовконтроллер для извлечения данных из хранилища должен возвращать пустой массив, но я продолжаю получать сообщение об ошибке ниже.

org.h2.jdbc.JdbcSQLException: таблица "GENERAL_LEDGER_TRANSACTION" не найдена;Оператор SQL: выберите ... из GENERAL_LEDGER_TRANSACTION generalled0_ [42102-197] в org.h2.message.DbException.getJdbcSQLException (DbException.java:357) ~ [h2-1.4.197.jar: 1.4.197] ...

1 Ответ

0 голосов
/ 30 мая 2018

добавить spring.datasource.initialize=true в ваше приложение. Свойства

...