springboot休眠异常实体未映射

时间:2020-10-03 03:46:22

标签: java spring spring-boot hibernate

我正在尝试在Spring休眠应用程序中对服务类进行单元测试。

public class UserServiceTest extends SpringAwareTest {

    @Autowired
    @Qualifier("userService")
    private UserService userSvc;
    
    @Autowired
    @Qualifier("roleService")
    private RoleService roleSvc;

    ...

}

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="/application-test-context.xml")
@Transactional
//@SpringApplicationConfiguration
@SpringBootTest
@Configurable
public abstract class BaseSpringAwareTest {
   ....
}

我的spring上下文文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa"
    xsi:schemaLocation="http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans.xsd
          http://www.springframework.org/schema/tx    http://www.springframework.org/schema/tx/spring-tx.xsd
          http://www.springframework.org/schema/context    http://www.springframework.org/schema/context/spring-context.xsd
          http://www.springframework.org/schema/jdbc    http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
          http://www.springframework.org/schema/data/jpa    http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"
    >

    <!-- import resource="classpath:/applicationContext.xml"/ -->
    
    <context:component-scan base-package="com.olp"/>
    
    <tx:annotation-driven />

    <jpa:repositories base-package="com.olp.jpa"  entity-manager-factory-ref="entityManagerFactory"/>
    
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
      <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>
    
    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceUnitManager" ref="persistenceUnitMgr"/>
        <property name="jpaDialect" ref="jpaDialect"/>
    </bean>
    
    <bean id="persistenceUnitMgr" class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
        
        <property name="persistenceXmlLocation" value="classpath:persistence-test.xml"/>
        <property name="defaultPersistenceUnitName" value="productHubTest"/>
        <property name="packagesToScan">
            <array value-type="java.lang.String">
                <value>com.olp.jpa</value>
            </array>
        </property>
    </bean>
    
    <bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"/>
    
...
    
</beans>

我在执行JUnits时遇到此异常-

java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException:UserEntity不是 映射[SELECT t FROM UserEntity t JOIN FETCH t.roles ORDER BY t.userName ASC] org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138) 在 org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181) 在 org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188) 在 org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:713) 在 org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:729) 在 org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:23) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)...

我的实体类在提到的顶级组件扫描的子包中-“ com.olp”

package com.olp.jpa.domain.docu.um.model;
...

@Entity
@Table(name = "trl_users")
@Cacheable(true)
@NamedQueries({
        @NamedQuery(....)
})
// ... 
public class UserEntity extends MultiTenantLifeCycleEntity {
// ...
}


package com.olp.jpa.common;
@MappedSuperclass
public class MultiTenantLifeCycleEntity {
   // ...
}

无法确定根本原因。任何指针将不胜感激。

0 个答案:

没有答案