Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何验证HSQLDB';在启动之前,系统的架构是正确的_Java_Spring_Hibernate_Jpa_Hsqldb - Fatal编程技术网

Java 如何验证HSQLDB';在启动之前,系统的架构是正确的

Java 如何验证HSQLDB';在启动之前,系统的架构是正确的,java,spring,hibernate,jpa,hsqldb,Java,Spring,Hibernate,Jpa,Hsqldb,我们正在我们的项目中使用hsqldb,并且工作正常。我们目前配置为使用进程内文件数据库,我们的DriverManager数据源、LocalContainerEntityManagerFactoryBean和TransactionManager都在上下文XML文件中实例化为bean: <bean id="databaseValidator" class="com.apps.database.DatabaseValidator"></bean> <bean id="d

我们正在我们的项目中使用hsqldb,并且工作正常。我们目前配置为使用进程内文件数据库,我们的DriverManager数据源、LocalContainerEntityManagerFactoryBean和TransactionManager都在上下文XML文件中实例化为bean:

<bean id="databaseValidator" class="com.apps.database.DatabaseValidator"></bean>

<bean id="dataSource" depends-on="databaseValidator" class="com.apps.database.DriverManagerDataSourceWithDirectory">
       <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
       <property name="url" value="jdbc:hsqldb:file:db/theDB" />
       <property name="username" value="--------" />
       <property name="password" value="--------" />
</bean>

<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
       <property name="dataSource" ref="dataSource" />
       <property name="jpaProperties">
              <props>
                    <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
                    <prop key="hibernate.hbm2ddl.auto">validate</prop>
              </props>
       </property>
       <property name="packagesToScan">
              <list>
                    <value>com.apps.model.logic</value>
                    <value>com.apps.jpa</value>
              </list>
       </property>
       <property name="mappingResources">
              <list>
                    <value>Setting.hbm.xml</value>
              </list>
       </property>
       <property name="jpaVendorAdapter">
              <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                    <property name="database" value="HSQL" />
              </bean>
       </property>
</bean>

<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
       <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
我很高兴根据需要提供更多信息。谢谢

private boolean isTheSchemaValid() {

    boolean isValid = false;
    LocalContainerEntityManagerFactoryBean emf = null;

    try {

        emf = new LocalContainerEntityManagerFactoryBean();

        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("org.hsqldb.jdbcDriver");
        dataSource.setUrl("jdbc:hsqldb:file:db/theDB");
        dataSource.setUsername("--------");
        dataSource.setPassword("--------");
        emf.setDataSource(dataSource);

        Properties jpaProperties = new Properties();
        jpaProperties.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
        jpaProperties.setProperty("hibernate.hbm2ddl.auto", "validate");
        emf.setJpaProperties(jpaProperties);
        emf.setPackagesToScan("com.test.model.logic", "com.test.jpa");
        emf.setMappingResources("Setting.hbm.xml");

        HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter();
        adapter.setDatabasePlatform("HSQL");
        emf.setJpaVendorAdapter(adapter);

        emf.afterPropertiesSet();

        isValid = true;
    } catch (Exception ex) {
        isValid = false;
    } finally {
        emf = null;
    }

    return isValid;
}