Hibernate nie tworzy fizycznie tabeli.

0

Mam problem ponieważ w logach dostaję, że Hibernate stworzył mi tabelę natomiast fizycznie w bazie jej nie widzę :

2019-03-02 10:03:34.956  INFO 13084 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {5.3.7.Final}
2019-03-02 10:03:34.956  INFO 13084 --- [           main] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
2019-03-02 10:03:35.112  INFO 13084 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2019-03-02 10:03:35.487  INFO 13084 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Hibernate: 
    
    drop table Mass if exists
Hibernate: 
    
    create table Mass (
       id integer generated by default as identity,
        clayCode varchar(255),
        clayName varchar(255),
        kaoliniteCode varchar(255),
        kaoliniteName varchar(255),
        quartzCode varchar(255),
        quartzName varchar(255),
        weight double not null,
        primary key (id)
    )
2019-03-02 10:03:36.190  INFO 13084 --- [           main] o.h.t.schema.internal.SchemaCreatorImpl  : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@53d2d002'
2019-03-02 10:03:36.206  INFO 13084 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-03-02 10:03:36.628  INFO 13084 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2019-03-02 10:03:36.674  WARN 13084 --- [           main] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2019-03-02 10:03:36.983  INFO 13084 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8081 (http) with context path ''
2019-03-02 10:03:36.999  INFO 13084 --- [           main] pl.dawydiuk.Foundry.FoundryApplication   : Started FoundryApplication in 6.34 seconds (JVM running for 7.368)

Konfiguracja :

@Configuration
@EnableTransactionManagement
@Slf4j
public class DaoConfig {

    @Bean
    public DataSource dataSourceH2() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("org.h2.Driver");    // org.h2.Driver
        dataSource.setUrl("jdbc:h2:mem:dev;DB_CLOSE_ON_EXIT=FALSE");    //jdbc:h2:tcp://localhost/~/test
        dataSource.setUsername("konrad");   //sa
        dataSource.setPassword("");//abc
        return dataSource;
    }

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSourceH2) {
        LocalContainerEntityManagerFactoryBean em
                = new LocalContainerEntityManagerFactoryBean();
        em.setDataSource(dataSourceH2);

        JpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
        em.setJpaVendorAdapter(hibernateJpaVendorAdapter);
        em.setPackagesToScan(new String[]{"models"});
        em.setJpaProperties(additionalProperties());
        return em;
    }

    Properties additionalProperties() {
        Properties properties = new Properties();
        properties.setProperty("hibernate.hbm2ddl.auto", "create-drop");
        properties.setProperty("hibernate.show_sql", "true");
        properties.setProperty("hibernate.format_sql", "true");
        properties.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
        return properties;
    }

    @Bean
    @Primary
    public SessionFactory sessionFactory(EntityManagerFactory entityManagerFactory) {
        if (entityManagerFactory.unwrap(SessionFactory.class) == null) {
            throw new NullPointerException("factory is not a hibernate factory");
        }
        SessionFactory sessionFactory = entityManagerFactory.unwrap(SessionFactory.class);
        return sessionFactory;
    }

    @Bean
    public PlatformTransactionManager transactionManager(
            EntityManagerFactory entityManagerFactory) {
        JpaTransactionManager transactionManager = new JpaTransactionManager();
        transactionManager.setEntityManagerFactory(entityManagerFactory);

        return transactionManager;
    }

    @Bean//bean ktory tlumaczy wyjatki na klasy Springa
    public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
        return new PersistenceExceptionTranslationPostProcessor();
    }
}

Encja:

@NoArgsConstructor
@AllArgsConstructor
@Builder
@Getter
@Setter
@Entity
public class Mass{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private double weight;

    @Embedded
    @AttributeOverrides(value = {
            @AttributeOverride(name = "name", column = @Column(name = "clayName")),
            @AttributeOverride(name = "code", column = @Column(name = "clayCode"))
    })
    private Clay clay;

    @Embedded
    @AttributeOverrides(value = {
            @AttributeOverride(name = "name", column = @Column(name = "quartzName")),
            @AttributeOverride(name = "code", column = @Column(name = "quartzCode"))
    })
    private Quartz quartz;

    @Embedded
    @AttributeOverrides(value = {
            @AttributeOverride(name = "name", column = @Column(name = "kaoliniteName")),
            @AttributeOverride(name = "code", column = @Column(name = "kaoliniteCode"))
    })
    private Kaolinite kaolinite;

}

0

Nie rozumiem pytania. Masz tam jdbc:h2:mem:dev czyli tworzysz bazę mem -> in memory. Nie ma jej nigdzie fizycznie na dysku.

0

No ok ale nie powinien stworzyć tabel w tej bazie ?

title

1 użytkowników online, w tym zalogowanych: 0, gości: 1