在整合Spring+Hibernate时报该错误,sessionFactory配置如下:

    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    .......
<!-- 自动扫描注解方式配置的hibernate类文件 -->
<property name="packagesToScan"> //最后发现是该处的错误
<list>
<value>sys.model</value>
</list>
</property>
    .......
</bean>

正如上面XML配置的那样,packageToScan是配置以注解方式配置Hibernate类,即如下这样的方式:

package sys.model;

import java.io.Serializable;
import java.util.Date; import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType; @Entity
@Table(name = "User")
public class UserInfo implements Serializable {
private static final long serialVersionUID = 8427996478439081619L;
// Fields
private String id;
private String name;
private String pwd;
private Date createdatetime;
private Date modifydatetime;
/** full constructor */
public UserInfo(String id, String name, String pwd, Date createdatetime, Date modifydatetime) {
this.id = id;
this.name = name;
this.pwd = pwd;
this.createdatetime = createdatetime;
this.modifydatetime = modifydatetime;
} @Id
@Column(name = "ID", unique = true, nullable = false, length = 36)
public String getId() {
return this.id;
} public void setId(String id) {
this.id = id;
} @Column(name = "NAME", unique = true, nullable = false, length = 100)
public String getName() {
return this.name;
} public void setName(String name) {
this.name = name;
} @Column(name = "PWD", nullable = false, length = 32)
public String getPwd() {
return this.pwd;
} public void setPwd(String pwd) {
this.pwd = pwd;
} @Temporal(TemporalType.TIMESTAMP)
// 如果这里是这种TemporalType.DATE,那么时间在数据库中存的时候会是"2015-07-16 00:00:00"这种形式,时分秒都为零
@Column(name = "CREATEDATETIME", length = 7)
public Date getCreatedatetime() {
return this.createdatetime;
} public void setCreatedatetime(Date createdatetime) {
this.createdatetime = createdatetime;
} @Temporal(TemporalType.TIMESTAMP)
@Column(name = "MODIFYDATETIME", length = 7)
public Date getModifydatetime() {
return this.modifydatetime;
} public void setModifydatetime(Date modifydatetime) {
this.modifydatetime = modifydatetime;
} @Override
public String toString() {
return "[ID:" + id + " Name:" + name + " PassWord:" + pwd + " Createdatetime:" + createdatetime + " Modifydatetiem:" + modifydatetime + "]";
}
}

但是我整合式采用的*.hbm.xml的方式

aaarticlea/png;base64,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" alt="" />

这种方式最方便的方式是采用“mappingDirectoryLocations”

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    .......
<property name="mappingDirectoryLocations">
<list>
<value>classpath:com/vrv/paw/domain</value>
</list>
</property>
</bean>

扩展:

mappingResources、mappingLocations、mappingDirectoryLocations
他们的区别:   
1. mappingResources:指定classpath下具体映射文件名

<property name="mappingResources">
<value>petclinic.hbm.xml </value>
</property>

2. mappingLocations:可以指定任何文件路径,并且可以指定前缀:classpath、file等

<property name="mappingLocations">
<value>/WEB-INF/petclinic.hbm.xml </value>
</property>
<property name="mappingLocations">
<value>classpath:/com/company/domain/petclinic.hbm.xml </value>
</property>

也可以用通配符指定,'*'指定一个文件(路径)名,'**'指定多个文件(路径)名,例如:

<property name="mappingLocations">
<value>classpath:/com/company/domainmaps/*.hbm.xml </value>
</property>

上面的配置是在com/company/domain包下任何maps路径下的hbm.xml文件都被加载为映射文件   
 
3. mappingDirectoryLocations:指定映射的文件路径

<property name="mappingDirectoryLocations">  <list>
<value>WEB-INF/HibernateMappings</value>
</list>
</property>

也可以通过classpath来指出

<property name="mappingDirectoryLocations">
<list>
<value>classpath:/XXX/package/</value>
</list>
</property>

总结:注解方式配置的hibernate类 与  *.hbm.xml  方式配置的类,在配置SessionFactory时配置方式是不同的,这是我以前没有注意的

no persistent classes found for query class: FROM com.vrv.paw.domain.User的更多相关文章

  1. [NHibernate]持久化类(Persistent Classes)

    系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 引言 持久化类是应用程序用来解决商业问题的类(比如,在电子交易程序中的Customer和Orde ...

  2. NHibernate官方文档中文版——持久化类(Persistent Classes)

    持久化类是一个应用程序中的类,主要用来实现业务逻辑(例如,在电商应用中的客户和订单类).持久化类,就像它的名字一样,生命周期短暂并且用来持久化的据库对象实例. 如果这些类的构造能够依照一些简单的原则, ...

  3. unexpected token: * 和 java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 解决办法

    一.unexpected token: *  的解决办法 首先要搞清楚sql与hql的区别! sql操作的是数据库表,而hql操作的是对象! sql中“select * from table”,而hq ...

  4. [NHibernate]条件查询Criteria Query

    目录 写在前面 文档与系列文章 条件查询 一个例子 总结 写在前面 上篇文章介绍了HQL查询,我个人觉得使用ORM框架就是为了让少些sql,提高开发效率,而再使用HQL就好像还是使用sql,就觉得有点 ...

  5. HQL: The Hibernate Query Language

    Chapter 14. HQL: The Hibernate Query Language 14.1. Case Sensitivity 14.2. The from clause 14.3. Ass ...

  6. Persistent Data Structures

    原文链接:http://www.codeproject.com/Articles/9680/Persistent-Data-Structures Introduction When you hear ...

  7. How to: Generate XPO Business Classes for Existing Data Tables 如何:为现有数据表生成 XPO 业务类

    From the Tutorial and other documentation sources, you learned how to create business classes for yo ...

  8. How to: Implement a Custom Base Persistent Class 如何:实现自定义持久化基类

    XAF ships with the Business Class Library that contains a number of persistent classes ready for use ...

  9. Implement Custom Business Classes and Reference Properties 实现自定义业务类和引用属性(XPO)

    In this lesson, you will learn how to implement business classes from scratch. For this purpose, the ...

随机推荐

  1. python之 datatime 模块

    datetime 和date 使用上类似 import datetime print(datetime.datetime.today())#当前时间,到毫秒,datetime 类型 2018-01-2 ...

  2. 实参相依查找[条款25]----《C++必知必会》

    名字空间对现代C++编程和设计有着深远的影响.其中有些影响直接而明显,例如using声明和using 指令以及采用名字空间作用域加以限定的名字.然而,名字空间还有一些在语法上不那么明显但任然很有基础. ...

  3. Java基础知识陷阱(七)

    本文发表于本人博客. 上次说了下HashSet和HashMap之间的关系,其中HashMap这个内部有这么一句: static final float DEFAULT_LOAD_FACTOR = 0. ...

  4. android上传图片、视频、文件,服务端使用wcf接收

    最近一直在搞android上传图片.视频.文件,服务端使用wcf接收,本文对调试中的遇到的问题进行记录. 首先android上传一些小图片是比较容易的一天下来差不多就能调试出来,但是上传一些大的文件时 ...

  5. Java语法糖设计

    语法糖 Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的字节码或者特定的方式对这 ...

  6. hadoop streaming anaconda python 计算平均值

    原始Liunx 的python版本不带numpy ,安装了anaconda 之后,使用hadoop streaming 时无法调用anaconda python  , 后来发现是参数没设置好... 进 ...

  7. iOS 性能优化之业务性能监控

    业务性能监控, 在人工的在业务的开始和结束处打点上报,然后后台统计达到监控目的, 是性能优化里比较重要的一个维度.具体来说就是测试方法操作执行的时间损耗,可能是同步 也可能是异步的.测试的方法大概有如 ...

  8. Jmeter数据库mysql测试说明

    主要分3个步骤,详细操作步骤如下: 一.环境准备 1.下载mysql驱动,下载地址:https://dev.mysql.com/downloads/connector/j/,Select Operat ...

  9. JS答辩习题

    php高中班javascript答辩题目 1 什么是javascript?  答:Javascript是一种专门设计用来增强网页交互性的脚本语言,它也是一种解释型语言. 2 Javascript与C语 ...

  10. Django学习笔记之Django Form表单详解

    知识预览 构建一个表单 在Django 中构建一个表单 Django Form 类详解 使用表单模板 回到顶部 构建一个表单 假设你想在你的网站上创建一个简单的表单,以获得用户的名字.你需要类似这样的 ...