[英]Hibernate Default Schema not working
I'm trying to set a default schema in my Hibernate mapping, like so: 我正在尝试在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>
However, when I run a simple test query: 但是,当我运行一个简单的测试查询时:
@PersistenceContext
private EntityManager manager;
@Transactional
public List<Person> listPeople() {
return manager.createQuery("SELECT p FROM Person p", Person.class).getResultList();
}
I get this: 我得到这个:
Invalid object name 'Person'. 对象名称“ Person”无效。
When I run a native query: 当我运行本机查询时:
manager.createNativeQuery("SELECT * FROM Store.Person", Person.class).getResultList();
Everything works fine. 一切正常。
I'm running a SE application, using Spring. 我正在使用Spring运行SE应用程序。 I have used the
hibernate.default_schema
in a Web App before, and it worked just fine. 我以前在Web应用程序中使用过
hibernate.default_schema
,它工作得很好。
This is how I declare the entities mapping: 这就是我声明实体映射的方式:
<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>
Any thoughts? 有什么想法吗?
I could solve the problem by setting the default schema directly in my Spring context file: 我可以通过直接在Spring上下文文件中设置默认架构来解决该问题:
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.