Я нашел, что в в спящем режиме файл конфигурации, мы могли настроить параметр hibernate.default_schema
:
<hibernate-configuration>
<session-factory>
...
<property name="hibernate.default_schema">myschema</property>
...
</session-factory>
</hibernate-configuration>
Теперь я использую JPA, и я хочу сделать то же. Иначе я должен добавить параметр schema
к каждой @Table аннотации как:
@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. Какие-либо идеи?
Для тех то, кто использует последние версии пружинной начальной загрузки, поможет этому:
.properties:
spring.jpa.properties.hibernate.default_schema=<name of your schema>
.yml:
spring:
jpa:
properties:
hibernate:
default_schema: <name of your schema>
Используйте это
@Table (name = "Test", schema = "\"schema\"")
вместо этого @Table (name = "Test", schema = "schema")
, Если Вы находитесь на postgresql, запрос:
SELECT * FROM "schema".test
нет:
SELECT * FROM schema.test
пз: Тест является таблицей