我试图将GlassFish 4中的连接池从MySQL切换到Derby。我正在使用Spring-Data-JPA和JPA / Hibernate。问题是并非所有表都是使用derby池创建的。不创建具有至少一个布尔字段的实体的表。
我在日志文件中找不到任何内容。 :(
我的applicationContext.xml:
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<context:annotation-config />
<context:component-scan base-package="project" />
<bean
id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property
name="jndiName"
value="serverPool" />
<property
name="lookupOnStartup"
value="false" />
<property
name="proxyInterface"
value="javax.sql.DataSource" />
</bean>
<bean
id="hibernateJpaVendorAdapter"
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property
name="generateDdl"
value="true" />
<property
name="showSql"
value="true" />
</bean>
<bean
id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property
name="dataSource"
ref="dataSource" />
<property
name="jpaVendorAdapter"
ref="hibernateJpaVendorAdapter" />
<property
name="packagesToScan"
value="project.model.entity" />
</bean>
<bean
id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property
name="entityManagerFactory"
ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<jpa:repositories base-package="project.model.repository" />
</beans>
答案 0 :(得分:0)
如果问题只是创建布尔列,请尝试使用@Column将DDL语句添加到Derby数据库,我知道这种降低可移植性但它将解决问题。该属性名为columnDefinition。 http://docs.oracle.com/javaee/6/api/javax/persistence/Column.html
此外,我认为日志中需要有一些东西,尝试提高日志级别。
答案 1 :(得分:0)
好的,我找到了解决方案:我连接到derby数据库并执行命令values syscs_util.syscs_get_database_property( 'DataDictionaryVersion' );
结果是10.1,但版本10.7是布尔支持所必需的。然后,我在GlassFish内的derby池中重命名了数据库名称(默认为sun-appserv-samples
),现在创建了所有表。使用新数据库,命令给了我版本10.9。