这个错误基本上是因为hql语句写错了而造成的, 返回找hql输出一下发现, hql语句中间少了几个空格, 写成了String hql = "from"+className+"where yxbz='1'"; 修改成String hql = "from "+className+" where yxbz='1'"; 就解决了.…
严重: Servlet.service() for servlet springmvc threw exception java.lang.IllegalArgumentException: node to traverse cannot be null! ===============(节点遍历不能为空!) 出现这种问题是因为HQL语句出现问题,引起内部查询对象为空,无法处理为空值引起的.这种情况首先检查hql语句有没有错误,单词错误.标点符号错误…
查看HQL的语句是否写错了,是否有在From后面加空格.我就是没有加空格报了错误! return sessionFactory.getCurrentSession().createQuery("from " + " "+clazzName).list();…
Hibernate 中出现 users is not mapped 问题: 解答:HQL语句中表名应该是ORM映射的类名,所以应该改成:  (如果是用注解生成实体类,那就是注解的那个类)String sql = "select u.password from User u where u.username='" +user.getUsername()+ "'"; User.hbm.xml:<class name="com.lian.bean.User…
问题: 问题出处见 C语言初学者代码中的常见错误与瑕疵(5) . 在该文的最后,曾提到完成的代码还有进一步改进的余地.本文完成了这个改进.所以本文讨论的并不是初学者代码中的常见错误与瑕疵,而是对我自己代码的改进和优化.标题只是为了保持系列的连续性. 改进 程序的总体思想没有改变,所以main()函数不需要任何改动. int main( void ) { unsigned n ; puts( "数据组数=?" ); scanf( "%u" , &n ); )…
如果想通过级联属性删除一端的数据和多端的数据要使用 void org.hibernate.Session.delete(Object arg0) 方法. getSession().delete(team);//使用级联属性删除数据可以删除成功. 如果使用HQL语句,使用executeUpdate()方法删除则会抛出异常. Integer id = team.getId(); String hql = "DELTE FROM Team t WHERE t.id = ?"; getSess…
锁机制:是数据库为了保证数据的一致性<一个事务的各种操作不相互影响>而使各种共享资源在被并发访问访问变得有序所设计的一种规则,用来保证在当前用户进行操作数据的时候其他的用户不能对同一数据进行任何操作. Hibernate是一个持久层框架,他的操作就是用来存取数据库中的数据,为了保证数据的一致性,hibernate提供了自己的锁机制. Hibernate的锁机制: 乐观锁:<pessimistic locking>他认为一般不会出现多个用户同时操作同一条数据的情况,因此不做资料库层次…
Hibernate中evict方法和clear方法说明 先创建一个对象,然后调用session.save方法,然后调用evict方法把该对象清除出缓存,最后提交事务.结果报错: Exception in thread "main" org.hibernate.AssertionFailure: possible nonthreadsafe access to session.如果 用的不是evict方法,而是clear方法来清session缓存的话,就不会报错. 1.session.e…
Java Persistence API定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库.这些普通Java对象被称作Entity Bean.除了是用Java Persistence元数据将其映射到数据库外,Entity Bean与其他Java类没有任何区别.事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步.…
hibernate中session的获取使用以及其他注意事项 前言:工作时,在同时使用Hibernate的getSession().getHibernateTemplate()获取Session后进行数据查询时不是出现了"session is close"异常就是出现其他异常问题,痛定思痛,决定收集并整理相关资料,方便今后的使用. 一.session的获取 在hibernate中的Session对象通过SessionFactory来管理,可以通过使用openSession ().get…
Hibernate中,关于从 Configuration中建立一个SessionFactory常用的可以有两种方法,一种是为Configuration提供hibernate.cfg.xml配置文件,还有一种就是提供hibernate.properties配置文件. 1.提供hibernate.cfg.xml配置文件: static {  Configuration config=null;  try {   config = new Configuration().configure();//使…
本文原址 : http://stta04.javaeye.com/blog/377633 hibernate 中createQuery与createSQLQuery 昨晚帮同事看代码到凌晨2点多,今早6点醒来发现他发来信息说报空指针错误,实在无法入睡,起来自己测试了一下,控制台还真的报: 2009-4-25 8:12:34 org.apache.catalina.core.ApplicationContext log信息: java.lang.ClassCastException: [Ljava…
hibernate中的session是一级缓存,可以理解为进程级的缓存.在进程运行期间一直存在. session可以理解为一个可以操作数据库的对象 具体如何操作数据库? session中有方法, 如果只是单独的hibernate程序的话. 获得session之后,打开事务,操作数据库,提交(回滚事务),关闭session.就这样完成了操作DB ? Hibernate中session的使用: 在Hibernate中session主要是用来操作数据库? Hibernate在操作数据库前需要得到Ses…
Hibernate集合映射中,经常会使用到"inverse"和"cascade"这两个属性.对于我这样,Hibernate接触不深和语文水平够烂的种种因素,发现这两个属性实在是难以理解,无奈只好将这个两个属性解释工作交给了Google和Baidu,查看了许多牛人的解释,加上自己在Eclipse上的调试,对"inverse"和"cascade"这两个属性有了一定的见解. "inverse"属性探究 "…
1.在用Hibernate写增删改查时,有两种方式:a.HQL语句,b.原生态sql语句 如果我要执行的语句是:select * from Question HQL是这么写的: Session session = getSession(); String hql="from Question"; List list = (Question)session.createQuery(hql).list(); System.out.println(list.getTitle()); 测试正常…
Hibernate中使用@Lob 注解保存String[] 问题 在Hibernate注解中怎样你想保存一个字段为String数组类型.假设你想尝试保存为clob类型的话,普通情况下为定义为: @Entity Public class Person { - @Lob String[] stringArray; -. } 多数时候当你自己主动创建表的时候,Hibernate会告诉你Json无法转换或者类转换错误.原因在于你保存text类型文本,Hibernate仅仅接受String类型的.当你定义…
对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.下面来描述如何使用这个API进行查询. 1.标量查询(Scalar queries) 最基本的SQL查询就是获得一个标量(数值)的列表. sess.createSQLQuery("SELECT * FROM CATS").list(); sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CAT…
最近在学习SHH框架中的hibernate,对Session的get和load方法,有点混不清楚,不知道区别在哪,或者对它们的区别感触不深.所以百度了一下,结果问题来了.百度的结果和实际测试的结果出入很大.主要是对get方法的说法跟实际运行的结果不一致. 先说一下观点吧: get不支持lazy,load支持lazy: 数据不存在时,get返回null,load则抛出ObjectNotFoundException异常. load方法可以返回实体的代理类实例,而get方法直接读取数据库,所以直接返回…
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- Hibernate中查多条(全部)使用list()或iterator() 本篇介绍: 1.如何使用list()和iterator(): 2.list()和iterator的相同处与区别: 3.缓存对list()或iterator的影响: 一,list()和iterator()的使用: 1.list(): @Test /*简单的根据list查所有*/ public void t1ListDemo01(){ /…
转载:http://blog.csdn.net/kevon_sun/article/details/42850387 Hibernate Annotations 参考文档 3.2.0 CR1 目录 前言 1. 翻译说明 2. 版权声明 前言 1. 创建一个注解项目 1.1. 系统需求 1.2. 系统配置 2. 实体Bean 2.1. 简介 2.2. 用EJB3注解进行映射 2.2.1. 声明实体bean 2.2.1.1. 定义表(Table) 2.2.1.2. 乐观锁定版本控制 2.2.2. 映…
Hibernate中的事务隔离问题(脏读.不可重复读.幻读) 1.事务的特性 事务的四个特性: 1)原子性:事务是进行数据库操作的最小单位,所以组成事务的各种操作是不可分割的 2)一致性:组成事务的各种操作,要么全部成功,要么全部失败.其中有一个失败,事务无法完成 3)隔离性:在并发中,每个事务都是独立的 4)持久性:这是结果,表示在事务提交之后,数据将持久的保存到数据库 2.事务的隔离问题 事务的三个隔离问题: 1)脏读:一个事务读到了另一个事务还没提交的数据 如:A事务正在读一个数据a,但是…
学习hibernate的时候对级联关系的概念老是分不清楚,尤其是cascade.inverse傻傻分不清.以下通过样例来简单说明. 准备工作: 首先创建数据库,新建两张表: 教室表classes (字段此处省) 学生表student(字段此处省) 教室与学生是一对多的关系. 然后新建项目,加入hibernate对两张表的支持. 1.cascade cascade表示级联操作.即两个实体间存在级联关系(一个类是还有一个类中的属性)时,当保存.更新或删除一个实体时,是否对关联的实体做出相应操作(数据…
本文引自:http://www.blogjava.net/sy1214520/archive/2008/10/21/235667.html 本文总结Hibernate中常见的异常. 1. net.sf.hibernate.MappingException 当出现net.sf.hibernate.MappingException: Error reading resource:…异常时一般是因为映射文件出现错误. 当出现net.sf.hibernate.MappingException: Reso…
package com.zz.util; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.cfg.Configuration; /** * Configures and provides access to Hibernate sessions, tied to the * current thread of execution. Follows the Thr…
Hibernate中的一对一映射关系有两种实现方法(单向一对一,和双向一对一)(一对一关系:例如一个department只能有一个manager) 单向和双向有什么区别呢??例如若是单向一对一,比如在department中插入一个外键关联manager表(manager_id),那此时插入数据时,就必须先插入manager表的数据再插入department表的数据,而且使用Hibernate检索数据时,查询department的数据,如果没有使用懒加载,则manager的对应的数据也会被查询处出…
在数据库中表和表之间的关系有几种,(一对一,一对多,多对多)一对一关系:可以选择任意一方插入外键(one-to-one:one-to-one<--->many-to-one[unique='true'])一对多关系:在多的一端插入一端的主键为外键(one-to-many<--->many-to-one)多对多关系:新建一个表,选择两个表的主键为表的两个外键(many-to-many<-->many-to-many>) 关系配置步骤: ①:分析1端和n端 ②:在1端…
一.HQL语句中数据类型转换: 我们需要从数据库中取出序号最大的记录,想到的方法就是使用order by子句进行排序(desc倒序),然后取出第一个对象,可是当初设计数据库时(我们是在原来的数据库的基础上开发新系统),竟然将序号字段的类型设成了varchar2,真是让人郁闷,这样的话,如果排序的话,就是对字符串排序,12是比2小的数,那么就需要转换一下类型. 以下写法调整中是错误的,不能执行,报空指针错误:select cast(t.a as Integer) from table_1 t 我也…
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲述Hibernate中的二级缓存的配置,作者将使用的是ehcache缓存 一,目录 1.二级缓存的具体配置  1.1 jar包的引用和注意事项 1.2 ehcache.xml的配置 1.3 集成到hibernate.cfg.xml 1.4 需要使用二级缓存的 XXXX.hbm.xml中的配置 2.二级缓存的测试方法 2.1 测试是否配通,二级缓存存在性的证明 2.2 在二级缓存中设置readonl…
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲师Hibernate中的Criteria查询! 一,Criteria简介: 刚接触Hibernate的时候,就有一个概念,全自动的ORM框架,不用写SQL语句,但是实际我们还是有了另一个名词HQL,这难道是来搞笑的吗? 其实不然,当你接触到Criteria这个名词的时候,你就知道全自动的魅力了 二,Criteria的优缺点: 优点: 全自动,无需sql,hql,它以Java OOP的思想来操作数据…
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客将讲述Hibernate中的关联查询,及其级联(cascade)操作,以及指定哪一方维护关联关系的(inverse) 一,讲述目录如下: 1.单向一对多:(增加一个区县及其它以下的对应街道) 2.单项一对多:(查询一个区县,以及它下面所有的对应街道) 3.单项多对一:(查询一个指定的街道,并同时展示出其对应的区县) 4.双向一对多(多对一):(值得注意:toString()套路不对容易引发错误Err…