Я использую SpringRoo для обработки Hibernation моих объектов.
Но при запуске модульных тестов они терпят неудачу, потому что это говорит о том, что объект не отображается:
Вотошибка:
QuerySyntaxException: COUPON не отображается [ВЫБРАТЬ o ИЗ КУПОНА o] в org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister (SessionFactoryHelper.java:180)
как настроен мой блок персистентности:
<persistence-unit name="persistenceUnitTest" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>
<property name="hibernate.connection.charSet" value="UTF-8"/>
</properties>
</persistence-unit>
Вот как определяется моя сущность:
@RooJavaBean
@RooToString
@RooEntity(identifierColumn = "COUPONID", identifierType = Integer.class, table = "COUPON")
public class Coupon {
Установлен контекст приложения:
<context:component-scan base-package="com.tamiflu.entities">
<context:exclude-filter expression=".*_Roo_.*" type="regex"/>
</context:component-scan>
<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager"/>
<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory">
<property name="persistenceUnitName" value="persistenceUnitTest"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
<property name="url" value="jdbc:hsqldb:mem:tamiflu"/>
<property name="username" value="sa"/>
<property name="password" value=""/>
<property name="testOnBorrow" value="true"/>
<property name="testOnReturn" value="true"/>
<property name="testWhileIdle" value="true"/>
<property name="timeBetweenEvictionRunsMillis" value="1800000"/>
<property name="numTestsPerEvictionRun" value="3"/>
<property name="minEvictableIdleTimeMillis" value="1800000"/>
</bean>
Iчувствую, что у меня все на месте.Я не знаю, почему @RooEntity не воспринимается как отображаемое.