我发现在hibernate配置文件中,我们可以设置参数hibernate.default_schema:
hibernate.default_schema
<hibernate-configuration> <session-factory> ... <property name="hibernate.default_schema">myschema</property> ... </session-factory> </hibernate-configuration>
现在,我正在使用JPA,我也想这样做。否则,我必须将参数添加schema到每个@Table注释中,例如:
schema
@Entity @Table (name = "projectcategory", schema = "SCHEMANAME") public class Category implements Serializable { ... }
据我了解,此参数应该在配置的此部分中:
<bean id="domainEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="persistenceUnitName" value="JiraManager"/> <property name="dataSource" ref="domainDataSource"/> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="generateDdl" value="false"/> <property name="showSql" value="false"/> <property name="databasePlatform" value="${hibernate.dialect}"/> </bean> </property> </bean> <bean id="domainDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${db.driver}" /> <property name="jdbcUrl" value="${datasource.url}" /> <property name="user" value="${datasource.username}" /> <property name="password" value="${datasource.password}" /> <property name="initialPoolSize" value="5"/> <property name="minPoolSize" value="5"/> <property name="maxPoolSize" value="15"/> <property name="checkoutTimeout" value="10000"/> <property name="maxStatements" value="150"/> <property name="testConnectionOnCheckin" value="true"/> <property name="idleConnectionTestPeriod" value="50"/> </bean>
…但是我在Google中找不到它的名字。有任何想法吗?
也不知道这个的JPA属性。但是你可以仅将Hibernate属性(假设你使用Hibernate作为提供程序)添加为
... <property name="hibernate.default_schema" value="myschema"/> ...
Hibernate should pick that up