一个奇怪的异常,SSH使用注解方式

异常信息如下

Exception in thread "main" org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: cn.pb.jbit.tcjc034.entity.Director; nested exception is org.hibernate.MappingException: Unknown entity: cn.pb.jbit.tcjc034.entity.Director
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:679)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.get(HibernateTemplate.java:512)
at org.springframework.orm.hibernate3.HibernateTemplate.get(HibernateTemplate.java:506)
at cn.pb.jbit.tcjc034.dir.dao.impl.DirDaoImpl.queryDirectorById(DirDaoImpl.java:36)
at cn.pb.jbit.tcjc034.test.Test.main(Test.java:15)
Caused by: org.hibernate.MappingException: Unknown entity: cn.pb.jbit.tcjc034.entity.Director
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:628)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:91)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:906)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:843)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:836)
at org.springframework.orm.hibernate3.HibernateTemplate$1.doInHibernate(HibernateTemplate.java:519)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
... 5 more

附上源码

package cn.pb.jbit.tcjc034.test;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.pb.jbit.tcjc034.dir.dao.DirDao;

public class Test {
	public static void main(String[] args) {
		BeanFactory factory = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
		DirDao dao=(DirDao)factory.getBean("ddao");
		System.out.println(dao.queryDirectorById(2));
	}

}
package cn.pb.jbit.tcjc034.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@Entity
@Table(name="Director")
@SequenceGenerator(name="dir",sequenceName="seq_dir_dirid")
public class Director implements java.io.Serializable {

	// Fields

	private int dirid;
	private String dirname;

	// Property accessors
	@Id
	@GeneratedValue(generator="dir")
	public int getDirid() {
		return this.dirid;
	}

	public void setDirid(int dirid) {
		this.dirid = dirid;
	}

	public String getDirname() {
		return this.dirname;
	}

	public void setDirname(String dirname) {
		this.dirname = dirname;
	}

}
package cn.pb.jbit.tcjc034.dir.dao;

import java.util.List;

import cn.pb.jbit.tcjc034.entity.Director;

public interface DirDao {
	public void addDirector(Director director);

	public void deleteDirector(int id);

	public void updateDirector();

	public Director queryDirectorById(int id);

	public List<Director> queryAllDirector();

}
package cn.pb.jbit.tcjc034.dir.dao.impl;

import java.util.List;

import javax.annotation.Resource;

import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;

import cn.pb.jbit.tcjc034.dir.dao.DirDao;
import cn.pb.jbit.tcjc034.entity.Director;
@Repository("ddao")
public class DirDaoImpl extends HibernateDaoSupport implements DirDao {
	@Resource  
    public void setSessionFacotry(SessionFactory sessionFacotry) {  
        super.setSessionFactory(sessionFacotry);  
    }  
	public void addDirector(Director director) {
		// TODO Auto-generated method stub

	}

	public void deleteDirector(int id) {
		// TODO Auto-generated method stub

	}

	public List<Director> queryAllDirector() {
		// TODO Auto-generated method stub
		return null;
	}

	public Director queryDirectorById(int id) {
		// TODO Auto-generated method stub
		return (Director) this.getHibernateTemplate().get(Director.class, id);
	}

	public void updateDirector() {
		// TODO Auto-generated method stub

	}

}
<?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: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/context
	http://www.springframework.org/schema/context/spring-context.xsd">
	 <context:annotation-config />  
	 <context:component-scan base-package="cn.pb.jbit.tcjc034"></context:component-scan> 

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver">
		</property>
		<property name="url" value="jdbc:oracle:thin:@172.25.24.214:1521:orcl">
		</property>
		<property name="username" value="tuzki"></property>
		<property name="password" value="orcl"></property>
	</bean>
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.Oracle9Dialect
				</prop>
			</props>
		</property>
		<property name="annotatedClasses">
			<list>
				<value>
					cn.pb.jbit.tcjc034.entity.Director
				</value>
			</list>
		</property>
	</bean>
</beans>

最奇怪的地方就是

<property name="annotatedClasses">
	<list>
	    <value>
		cn.pb.jbit.tcjc034.entity.Director
    	    </value>
	</list>
/property>

name属性试了好几个annotatedClasses,annotatedPackages,packagesToScan

只有annotatedClasses的时候,value给类名称,不出异常。

annotatedPackages,packagesToScan给包名cn.pb.jbit.tcjc034.entity都提示找不到类,报了异常

= =哪里出的错啊= =

时间: 2024-11-13 07:59:47

一个奇怪的异常,SSH使用注解方式的相关文章

一个简单的Spring定时器例子 注解方式

首先在applicationContext.xml中增加 文件头中增加一条 xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation 中增加一条 http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd <beans xmlns:task=&quo

tomcat的webappclassloader中一个奇怪的异常信息

如果一个应用抛出大量的Class not found信息,一般你会怀疑包冲突.可是tomcat的webappclassloader却有这样的问题: 如果一个应用发布出现问题, webappclassloader的started属性被设为false.然后其它线程如果继续使用webappclassloader进行class load,则大量的Class not found异常 被抛出: 1391       public Class loadClass(String name, boolean re

一个奇怪的异常

java.sql.SQLException: Parameter metadata not available for the given statement. 这是在测试数据库元数据时产生的,数据库为MySql.解决的方法不难,就是在连接数据库时的URL后面加上可以返回的元数据类型例如:出异常时的我的URL是这样子写的:url=“jdbc:mysql://127.0.0.1:3306/demo?user=root&password=root&useUnicode=true”正确写法应该是

从零开始学JAVA(09)-使用SpringMVC4 + Mybatis + MySql 例子(注解方式开发)

项目需要,继续学习springmvc,这里加入Mybatis对数据库的访问,并写下一个简单的例子便于以后学习,希望对看的人有帮助.上一篇被移出博客主页,这一篇努力排版整齐,更原创,希望不要再被移出主页了. 原创文章,后面附上源码,转载请注明出处http://www.cnblogs.com/lin557/p/6179618.html 一.运行环境 Eclipse Neon.1a Release (4.6.1) 官网下载 mysql-5.7.16-winx64(http://cdn.mysql.co

SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP

AOP(Aspect Oriented Programming).是面向切面编程的技术.AOP基于IoC基础.是对OOP的故意补充. AOP之所以能得到广泛应用,主要是由于它将应用系统拆分分了2个部分:核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的切面Crosscutting enterprise concerns.比如,全部大中型应用都要涉及到的持久化管理(Persistent).事务管理(Transaction Management).权限管理(P

SSH深度历险(十一) AOP原理及相关概念学习+xml配置实例(对比注解方式的优缺点)

接上一篇 SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP,本篇我们主要是来学习使用配置XML实现AOP 本文采用强制的CGLB代理方式 SecurityHandler这个通知类可以换成安全性检测.日志管理等等. <span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18

MyBtis注解方式注册异常

最近学习MyBatis,学习到注解方式实现增删改查使遇到异常,困惑的很长时间,最终找到解决问题的方法,共勉! 写好注解的接口后注册到配置文件时使用 方式一 <mapper class="com.liuyunlong.mybatis.annotation.UserMapper" /> 问题来了,抛出异常如下: org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ##

C++异常机制的实现方式和开销分析 (大图,编译器会为每个函数增加EHDL结构,组成一个单向链表,非常著名的“内存访问违例”出错对话框就是该机制的一种体现)

白杨 http://baiy.cn 在我几年前开始写<C++编码规范与指导>一文时,就已经规划着要加入这样一篇讨论 C++ 异常机制的文章了.没想到时隔几年以后才有机会把这个尾巴补完 :-). 还是那句开场白:“在恰当的场合使用恰当的特性” 对每个称职的 C++ 程序员来说都是一个基本标准.想要做到这点,就必须要了解语言中每个特性的实现方式及其时空开销.异常处理由于涉及大量底层内容,向来是 C++ 各种高级机制中较难理解和透彻掌握的部分.本文将在尽量少引入底层细节的前提下,讨论 C++ 中这一

Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法

Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法 在Action中方法的返回值都是字符串行,一般情况是返回某个JSP,如: return "xx":意思是返回到某个JSP页面上 如果想在此Action中跳转到另一个Action中怎样做呢? return "redirect://.do?" 例如: @RequestMapping(params = "action=delete") public String del