복붙노트

[SPRING] 최대 절전 모드 기본 스키마가 작동하지 않습니다.

SPRING

최대 절전 모드 기본 스키마가 작동하지 않습니다.

내 Hibernate 매핑에서 기본 스키마를 설정하려고한다.

<persistence-unit name="store">

    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jar-file>store-data-0.0.4-SNAPSHOT.jar</jar-file>

    <properties>
        <property
            name="hibernate.show_sql"
            value="true" />
        <property
            name="hibernate.format_sql"
            value="true" />
        <property
            name="hibernate.default_schema"
            value="Store"></property>
        <property
            name="hibernate.archive.autodetection"
            value="class" />
    </properties>
</persistence-unit>

그러나 간단한 테스트 쿼리를 실행할 때 :

@PersistenceContext
private EntityManager manager;

@Transactional
public List<Person> listPeople() {
    return manager.createQuery("SELECT p FROM Person p", Person.class).getResultList();
}

나는 이것을 얻는다 :

개체 이름 'Person'이 잘못되었습니다.

네이티브 쿼리를 실행할 때 :

manager.createNativeQuery("SELECT * FROM Store.Person", Person.class).getResultList();

모든 것이 잘 작동합니다.

Spring을 사용하는 SE 응용 프로그램을 실행 중입니다. 이전에 웹 응용 프로그램에서 hibernate.default_schema를 사용했고, 정상적으로 작동했습니다.

이것이 엔티티 매핑을 선언하는 방법입니다.

<bean
    id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property
        name="dataSource"
        ref="mysqlDataSource" />
    <property
        name="packagesToScan"
        value="com.base.package" /> <!-- base package for all my entities -->
    <property name="jpaVendorAdapter">
        <bean
            class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
    </property>
</bean>

이견있는 사람?

해결법

  1. ==============================

    1.스프링 컨텍스트 파일에 기본 스키마를 직접 설정하여이 문제를 해결할 수 있습니다.

    스프링 컨텍스트 파일에 기본 스키마를 직접 설정하여이 문제를 해결할 수 있습니다.

    <bean
        id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property
            name="dataSource"
            ref="mysqlDataSource" />
        <property
            name="packagesToScan"
            value="com.base.package" /> <!-- base package for all my entities -->
        <property name="jpaVendorAdapter">
            <bean
                class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
        </property>
            <property name="jpaProperties">
                <props>
                    <prop key="hibernate.show_sql">true</prop>
                    <prop key="hibernate.format_sql">true</prop>
                    <prop key="hibernate.default_schema">Store</prop>
                </props>
            </property>
    </bean>
    
  2. from https://stackoverflow.com/questions/24846636/hibernate-default-schema-not-working by cc-by-sa and MIT license