Как настроить название схемы по умолчанию в конфигурации JPA?

Я нашел, что в в спящем режиме файл конфигурации, мы могли настроить параметр 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. Какие-либо идеи?

58
задан 29 April 2010 в 17:25

2 ответа

Для тех то, кто использует последние версии пружинной начальной загрузки, поможет этому:

.properties:

spring.jpa.properties.hibernate.default_schema=<name of your schema>

.yml:

spring:
    jpa:
        properties:
            hibernate:
                default_schema: <name of your schema>
1
ответ дан 1 November 2019 в 13:29

Используйте это

@Table (name = "Test", schema = "\"schema\"")

вместо этого @Table (name = "Test", schema = "schema")

, Если Вы находитесь на postgresql, запрос:

SELECT * FROM "schema".test 

нет:

SELECT * FROM schema.test

пз: Тест является таблицей

0
ответ дан 1 November 2019 в 13:29

Другие вопросы по тегам:

Похожие вопросы: