Caused by: org.hibernate.AnnotationException: Property of @IdClass not found in

u010840652 2013-12-20 04:45:47

异常:
严重: Context failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactoyr' defined in ServletContext resource [/WEB-INF/classes/applicationcontext.xml]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: Property of @IdClass not found in entity com.entity.Sc: con
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1507)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:295)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:625)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:493)
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:106)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.AnnotationException: Property of @IdClass not found in entity com.entity.Sc: con
at org.hibernate.cfg.AnnotationBinder.fillComponent(AnnotationBinder.java:2390)
at org.hibernate.cfg.AnnotationBinder.bindIdClass(AnnotationBinder.java:2503)
at org.hibernate.cfg.AnnotationBinder.mapAsIdClass(AnnotationBinder.java:845)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:671)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3537)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3491)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1376)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1865)
at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:375)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:360)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1566)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1503)
... 21 more

十二月 20, 2013 4:40:58 下午 org.apache.catalina.core.StandardContext listenerStart
严重: 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 'sessionFactoyr' defined in ServletContext resource [/WEB-INF/classes/applicationcontext.xml]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: Property of @IdClass not found in entity com.entity.Sc: con
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1507)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:295)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:625)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:493)
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:106)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.AnnotationException: Property of @IdClass not found in entity com.entity.Sc: con
at org.hibernate.cfg.AnnotationBinder.fillComponent(AnnotationBinder.java:2390)
at org.hibernate.cfg.AnnotationBinder.bindIdClass(AnnotationBinder.java:2503)
at org.hibernate.cfg.AnnotationBinder.mapAsIdClass(AnnotationBinder.java:845)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:671)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3537)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3491)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1376)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1865)
at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:375)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:360)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1566)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1503)
... 21 more


...全文
621 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolbamboo2008 2013-12-20
  • 打赏
  • 举报
回复
PK里的cno也改
u010840652 2013-12-20
  • 打赏
  • 举报
回复
引用 8 楼 fangmingshijie 的回复:
引用 5 楼 u010840652 的回复:
引用 2 楼 fangmingshijie 的回复:
@IdClass里的属性要和pk一致才行,你一个cno,一个con,当然报错了。
刚刚也发现了 但是改了之后
肯定哪里还是存在的,不然会包con干嘛,好好检查。
- -确实存在在PK里面 谢谢你
u010840652 2013-12-20
  • 打赏
  • 举报
回复
引用 8 楼 fangmingshijie 的回复:
引用 5 楼 u010840652 的回复:
引用 2 楼 fangmingshijie 的回复:
@IdClass里的属性要和pk一致才行,你一个cno,一个con,当然报错了。
刚刚也发现了 但是改了之后
肯定哪里还是存在的,不然会包con干嘛,好好检查。
在com.entity.sc类中搜索一下确实没有啊,但是他怎么会提示在sc类里面有con呢
  • 打赏
  • 举报
回复
引用 5 楼 u010840652 的回复:
引用 2 楼 fangmingshijie 的回复:
@IdClass里的属性要和pk一致才行,你一个cno,一个con,当然报错了。
刚刚也发现了 但是改了之后
肯定哪里还是存在的,不然会包con干嘛,好好检查。
u010840652 2013-12-20
  • 打赏
  • 举报
回复
引用 4 楼 rui888 的回复:
con ,,con
刚刚也发现了,但是改过来之后还是这个提示 是为什么呢?
u010840652 2013-12-20
  • 打赏
  • 举报
回复
引用 3 楼 coolbamboo2008 的回复:
他没找到你的主键啊 你在Sc里面应该用PK这个主键吧 异常的意思是说,你@IdClass指定的那个类在Sc里没有出现
是的,好像就是联合主键没弄好,第一次弄联合的
u010840652 2013-12-20
  • 打赏
  • 举报
回复
引用 2 楼 fangmingshijie 的回复:
@IdClass里的属性要和pk一致才行,你一个cno,一个con,当然报错了。
刚刚也发现了 但是改了之后
tony4geek 2013-12-20
  • 打赏
  • 举报
回复
con ,,con
coolbamboo2008 2013-12-20
  • 打赏
  • 举报
回复
他没找到你的主键啊 你在Sc里面应该用PK这个主键吧 异常的意思是说,你@IdClass指定的那个类在Sc里没有出现
  • 打赏
  • 举报
回复
@IdClass里的属性要和pk一致才行,你一个cno,一个con,当然报错了。
u010840652 2013-12-20
  • 打赏
  • 举报
回复
applicationcontext.xml
<?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:aop="http://www.springframework.org/schema/aop"
         xmlns:tx="http://www.springframework.org/schema/tx"
         xmlns:context="http://www.springframework.org/schema/context"
         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
           
     <context:annotation-config/>
   <!--   <context:property-placeholder location="classpath:dataSourse.property"/> -->
     <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
     	<property name="locations">
     		<list>
				<value>classpath:/jdbc.property</value>     		
     		</list>
     	</property>
     </bean>
     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
     	<property name="driverClassName" value="${jdbc.driverClassName}"></property>
     	<property name="url" value="${jdbc.url}"></property>
     	<property name="username" value="${jdbc.username}"></property>
     	<property name="password" value="${jdbc.password}"></property>
     </bean>
     
     <bean id="sessionFactoyr" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
     	<property name="dataSource" ref="dataSource"></property>
     	<property name="hibernateProperties">
     		<props>
     			<prop key="hibernate.sql_show">true</prop>
     			<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
     		</props>
     	</property>
     	 <property name="packagesToScan" value="com.entity"/>
     </bean>
     
     <bean id="dao" class="com.dao.daoImpl"></bean>
     <bean id="textAction" class="com.action.Action"></bean>
</beans>
entity类
package com.entity;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;


@Entity
@IdClass(PK.class)
public class Sc implements Serializable{

	private double score;
	
	private String sno;
	private String cno;
	@Id
	public String getCno() {
		return cno;
	}
	public void setCno(String cno) {
		this.cno = cno;
	}
	@Id
	public String getSno() {
		return sno;
	}
	public void setSno(String sno) {
		this.sno = sno;
	}
	
	
	public double getScore() {
		return score;
	}
	public void setScore(double score) {
		this.score = score;
	}
	
	
}
联合主键类:
package com.entity;

import java.io.Serializable;

public class PK implements Serializable {

	private String con;
	private String sno;
	public String getCon() {
		return con;
	}
	public void setCon(String con) {
		this.con = con;
	}
	public String getSno() {
		return sno;
	}
	public void setSno(String sno) {
		this.sno = sno;
	}
	
	@Override
	public boolean equals(Object obj) {
		// TODO Auto-generated method stub
		return super.equals(obj);
	}
	
	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		return super.hashCode();
	}
}
这个异常怎么回事呀,百度一下也没发现有几个这个异常的问题

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧