在整合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. H5端js实现图片放大滑动查看-插件photoswipe的使用

    最近在开发项目的时候,遇到一个需求,需要移动端实现放大查看图片的功能,然后我就在网上搜索了一下资料,看到了photoswipe这个插件,后来试了试,确实挺好用的,它可以实现手势放大缩小查看图片,左右滑 ...

  2. 一个辅助AWVS C段扫描的小php脚本

    小菜写的小脚本,大牛轻拍砖~~~~~~ 渗透前信息收集时喜欢用椰树来获取旁站及二级域名,然后根据二级.三级域名地址扩展C段,扩大扫描业务边界.例如 以联想为例 但,各个旁站对应IP可能不同,或有CDN ...

  3. hadoop 一些命令

    关闭访问墙  service iptables stop hadoop dfs -mkdir input hadoop dfs -copyFromLocal conf/* input hadoop j ...

  4. sparkSQL整体实现框架

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://9269309.blog.51cto.com/9259309/1845525 这篇 ...

  5. 【转】安装Vue.js的方法

    安装vue.js的方法   一.简介 Vue.js 是什么 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量 ...

  6. RabbitMQ学习之(五)_一个基于PHP的RabbitMQ操作类

    //amqp.php类文件 <?php class Amqp { public $e_name; public $q_name; public $k_route; public $channel ...

  7. Python3.x:SQLAlchemy操作数据库

    Python3.x:SQLAlchemy操作数据库 前言 SQLAlchemy是一个ORM框架(Object Rational Mapping,对象关系映射),它可以帮助我们更加优雅.更加高效的实现数 ...

  8. LabVIEW之Vision基础 (一)之软件

    一.软件准备 NI LabVIEW软件视觉开发必备软件 1.开发平台:LabVIEW 2015Chinese 32位中文版 链接:http://pan.baidu.com/s/1eRGmFVc 2.N ...

  9. http://www.kindsoft.net/docs/qna.html

    http://www.kindsoft.net/docs/qna.html 感觉 Kindediter 非常好用  界面效果好 API也全面 很不错的编辑器

  10. MR案例:路径过滤PathFilter

    问题描述:现有一批cookie日志,按照日期进行存放,如目录 “dir/2015-08-08” 下存放2015-08-08这一天的所有cookie.而目录 “/2015-08-08/” 下又根据数据文 ...