简体   繁体   English

JPA持久类扩展了来自不同JAR的另一个类

[英]JPA persistent class extending another class from different JAR

Hoping someone can helpme with this issue as all the answers I have found do not seem to be working for me. 希望有人可以帮助解决这个问题,因为我发现的所有答案似乎都不适合我。

Under my myProj webapp I have the following 在我的myProj网络应用程序下,我有以下内容

./WEB=INF/lib/myproj-user.jar containing this class

@Entity
@Table(name = "user_details")
@Data
@EqualsAndHashCode(callSuper=false)
public class UserDetails extends CommonObject {
    ...
}

.

./WEB=INF/lib/myproj-common.jar containing this class

@MappedSuperclass
public abstract class CommonObject implements Serializable {

    private static final long serialVersionUID = -980608025624315940L;

    @Getter @Setter
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;
    ...
}

And my application-context.xml has this (application-context.xml has sub XMLs called hibernate-context and model-context.xml, but these have always been fine) 而我的application-context.xml具有此功能(application-context.xml具有称为hibernate-context和model-context.xml的子XML,但是它们一直很好)

<bean id="commonAuto" class="com.myproj.common.model.CommonObject"/>
<bean id="userDetails" class="com.myproj.user.model.UserDetails"/>

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="annotatedClasses">
        <list>
            <value>com.myproj.common.model.CommonObject</value>             
            <value>com.myproj.user.model.UserDetails</value>    

But on startup I get the following error in my logs 但是在启动时,我的日志中出现以下错误

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService': Injection of autowired dependencies failed; 严重:向上下文org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException的类的侦听器实例发送上下文初始化事件的异常:创建名称为'userService'的bean时出错:自动连接依赖项注入失败; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.myproj.user.dao.UserDao com.myproj.user.servces.impl.UserServiceImpl.userDao; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:无法自动连线字段:com.myproj.user.dao.UserDao com.myproj.user.servces.impl.UserServiceImpl.userDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userAccountDao': Injection of autowired dependencies failed; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为'userAccountDao'的bean时出错:自动连接依赖项的注入失败; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.hibernate.SessionFactory com.myproj.user.dao.impl.UserDaoImpl.sessionFactory; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:无法自动连线字段:私有org.hibernate.SessionFactory com.myproj.user.dao.impl.UserDaoImpl.sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/context/hibernate-context.xml]: Invocation of init method failed; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建在ServletContext资源[/WEB-INF/context/hibernate-context.xml]中定义的名称为'sessionFactory'的bean时出错: 调用init方法失败; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.myproj.user.model.UserDetails at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1120) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetB 嵌套的异常是org.hibernate.AnnotationException:未为实体指定标识符: org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288)上的com.myproj.user.model.UserDetails 。 org.springframework.beans.factors.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)的Bean.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1120)org.springframework.beans.beans.factory.support.AbstractAutowireCapableBeanFactory。在org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:295)在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)的createBean(AbstractAutowireCapableBeanFactory.java:461) ),网址为org.springframework.beans.factory.support.AbstractBeanFactory.doGetB ean(AbstractBeanFactory.java:292) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4323) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.jav 于org.springframework.beans.factory.support.ean(AbstractBeanFactory.java:292)在org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)处的AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)在org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext (ContextLoader.java:389)在org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)在org.apache。 org.apache.catalina.core.StandardContext.startInternal(StandardContext.jav)上的catalina.core.StandardContext.listenerStart(StandardContext.java:4323) a:4780) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:785) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:763) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:557) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:987) at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:540) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1390) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:355) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:313) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java: a:4780),位于org.apache.catalina.core.org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)上,org.apache.catalina.core:ContainerBase.addChildInternal(ContainerBase.java:785)。 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:557)处的.ContainerBase.addChild(ContainerBase.java:763)在org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:987)处org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:540)上的org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)在org.apache.catalina.startup.HostConfig.start( org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:355)的org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)的org.apache.catalina的HostConfig.java:1390) org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:313)上的.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)在org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java: 293) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:996) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:771) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:275) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:427) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:649) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139) at org.apache.catalina.startup.Catalina.start(Catalina.java:585) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMetho 293)在org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:771)在org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:996)在org.apache.catalina.util.LifecycleBase位于org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988)的org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:275)的.start(LifecycleBase.java:139)。位于org.apache.catalina.core.StandardService.startInternal(StandardService.java:427)的apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase。 java:139)位于org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:649)位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)位于org.apache.catalina.startup .sun.reflect.NativeMethodAccessorImpl.invoke上的.Catalina.start(Catalina.java:585)in sun.reflect.NativeMethodAccessorImpl.invoke(本地方法)在sun.reflect.DelegatingMetho处 dAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415) Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.myproj.user.dao.UserDao com.myproj.user.servces.impl.UserServiceImpl.userDao; dAccessorImpl.invoke(未知源)(位于java.lang.reflect.Method.invoke(未知源)在org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)在org.apache.catalina.startup.Bootstrap .main(Bootstrap.java:415)原因:org.springframework.beans.factory.BeanCreationException:无法自动连线字段:com.myproj.user.dao.UserDao com.myproj.user.servces.impl.UserServiceImpl.userDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userAccountDao': Injection of autowired dependencies failed; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为'userAccountDao'的bean时出错:自动连接依赖项的注入失败; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.hibernate.SessionFactory com.myproj.user.dao.impl.UserDaoImpl.sessionFactory; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:无法自动连线字段:私有org.hibernate.SessionFactory com.myproj.user.dao.impl.UserDaoImpl.sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/context/hibernate-context.xml]: Invocation of init method failed; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建在ServletContext资源[/WEB-INF/context/hibernate-context.xml]中定义的名称为'sessionFactory'的bean时出错:调用init方法失败; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.myproj.user.model.UserDetails at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:514) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285) ... 45 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userAccountDao': Injection of autowired dependencies failed; 嵌套的异常是org.hibernate.AnnotationException:未为实体指定标识符:org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(org.springprof.user.model.UserDetails在org上。 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)的springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)... 45更多原因由:org.spring .beans.factory.BeanCreationException:创建名称为'userAccountDao'的bean时出错:自动连接依赖项的注入失败; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.hibernate.SessionFactory com.myproj.user.dao.impl.UserDaoImpl.sessionFactory; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:无法自动连线字段:私有org.hibernate.SessionFactory com.myproj.user.dao.impl.UserDaoImpl.sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/context/hibernate-context.xml]: Invocation of init method failed; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建在ServletContext资源[/WEB-INF/context/hibernate-context.xml]中定义的名称为'sessionFactory'的bean时出错:调用init方法失败; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.myproj.user.model.UserDetails at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1120) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetB 嵌套的异常是org.hibernate.AnnotationException:未为实体指定标识符:org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288)上的com.myproj.user.model.UserDetails。 org.springframework.beans.factors.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)的Bean.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1120)org.springframework.beans.beans.factory.support.AbstractAutowireCapableBeanFactory。在org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:295)在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)的createBean(AbstractAutowireCapableBeanFactory.java:461) ),网址为org.springframework.beans.factory.support.AbstractBeanFactory.doGetB ean(AbstractBeanFactory.java:292) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:891) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:834) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:749) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:486) ... 47 more Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.hibernate.SessionFactory com.myproj.user.dao.impl.UserDaoImpl.sessionFactory; 于org.springframework.beans.factory.support.ean(AbstractBeanFactory.java:292)在org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:891)处的AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)在org.springframework.beans.factory.org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:834)在org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:749) .annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:486)... 47更多原因:org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有org.hibernate.SessionFactory com.myproj.user。 dao.impl.UserDaoImpl.sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/context/hibernate-context.xml]: Invocation of init method failed; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建在ServletContext资源[/WEB-INF/context/hibernate-context.xml]中定义的名称为'sessionFactory'的bean时出错:调用init方法失败; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.myproj.user.model.UserDetails at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:514) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285) ... 58 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/context/hibernate-context.xml]: Invocation of init method failed; 嵌套的异常是org.hibernate.AnnotationException:未为实体指定标识符:org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(org.springprof.user.model.UserDetails在org上。在org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)处的springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)... 58更多原因由:org.spring .beans.factory.BeanCreationException:创建在ServletContext资源[/WEB-INF/context/hibernate-context.xml]中定义的名称为'sessionFactory'的bean时出错:调用init方法失败; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.myproj.user.model.UserDetails at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1486) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) at org.springframew 嵌套异常是org.hibernate.AnnotationException:未为实体指定标识符:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1486)上的com.myproj.user.model.UserDetails。 org.springframework.beans.factors.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)的Beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)在org.springframework.beans.factory.support.AbstractBeanFactory $ 1 org.springframework.beans.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)上的.getObject(AbstractBeanFactory.java:295)在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) )在org.springframew的org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) ork.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:891) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:834) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:749) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:486) ... 60 more Caused by: org.hibernate.AnnotationException: No identifier specified for entity: com.myproj.user.model.UserDetails at org.hibernate.cfg.InheritanceState.determineDefaultAccessType(InheritanceState.java:276) at org.hibernate.cfg.InheritanceState.getElementsToProcess(InheritanceState.java:224) at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:665) at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Confi org.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:891)位于org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:834)位于org.springframework.beans.factory.support。 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:486)上的DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:749)... 60多原因由:org.hibernate.AnnotationException指定:适用于实体:org.hibernate.cfg.InheritanceState.determineDefaultAccessType(InheritanceState.java:276)上的com.myproj.user.model.UserDetails org.hibernate上的org.hibernate.cfg.InheritanceState.getElementsToProcess(InheritanceState.java:224)上的com.myproj.user.model.UserDetails .cfg.AnnotationBinder.bindClass(AnnotationBinder.java:665)在org.hibernate.cfg.Configuration $ MetadataSourceQueue.processAnnotatedClassesQueue(Confi guration.java:3431) at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3385) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1337) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1727) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1778) at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:242) at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:372) at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:357) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1545) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483) ... 70 m guration.java:3431)位于org.hibernate.cfg.Configuration $ MetadataSourceQueue.processMetadata(Configuration.java:3385)位于org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1337)在org.hibernate.cfg.Configuration org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1778)的org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:242)的.buildSessionFactory(Configuration.java:1727) org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:357)上的orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:372)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(Abstract。 java:1545)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483)... 70 m ore 矿石

  @MappedSuperclass
  public abstract class CommonObject implements Serializable {
      private Date createDate;
      public abstract Long getId() ;
      public abstract void setId(Long id);

      public Date getCreateDate() {
            return createDate;
      }

      public void setCreateDate(Date createDate) {
            this.createDate = createDate;
      } 
  }



   @Entity
   @Table
   public class UserDetails extends CommonObject {

        String name;
        int age;

         @GeneratedValue(strategy= GenerationType.AUTO)
         @Id
         private Long id;
         public String getName() {
                 return name;
         }

         public void setName(String name) {
              this.name = name;
         }

         public int getAge() {
               return age;
         }

         public void setAge(int age) {
                this.age = age;
         }

         public Long getId() {
                 return id;
         }

         public void setId(Long id) {
             this.id = id;
         }
   }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM