hibernate
不变不中
多想、多做、多总结,别怕吃亏。
展开
-
java.lang.ClassCastException: java.lang.String cannot be cast to com.qbz.entity.TblUser
在Hibernate HQL 查询中,有时候会遇到java.lang.ClassCastException: java.lang.String cannot be cast to com.qbz.entity.TblUser这种问题(String 类型不能转化为 实体类型)的出现,很有可能是hql语句的问题:出错语句: String hql1 = "select user from T原创 2015-07-26 10:30:50 · 3972 阅读 · 0 评论 -
Hibernate 的延迟加载(懒加载)简介1
什么是延迟加载:在使用某些Hibernate方法查询数据时,Hibernate返回的只是一个空对象(除id外属性都为null),并没有真正查询数据库。而在使用这个对象时才会触发查询数据库,并将查询到的数据注入到这个空对象中。这种将查询时机推迟到对象访问时的机制称之为延迟加载。为什么要使用延迟加载:可以提升内存资源的使用率可以降低对数据库的访问次数采用延迟加载的方法:session.loa原创 2015-07-23 08:36:15 · 581 阅读 · 0 评论 -
Hibernate 的一级缓存
什么是一级缓存:Hibernate创建每个Session对象时,都会给该Session分配一块独立的缓存区,用于存放该Session查询出来的对象,这个分配给Session的缓存区称之为一级缓存。也叫作Session级缓存。为什么要使用一级缓存:Session取数据时,会优先向缓存区取数据,如果存在数据则直接返回,不存在才会去数据库查询,从而降低了数据库访问次数,提升了代码运行效率。如何使用原创 2015-07-23 07:28:16 · 403 阅读 · 0 评论 -
Hibernate 的延迟加载(懒加载)简介2
初识懒加载懒加载是指程序推迟访问数据库,这样做可以保证有时候不必要的访问数据库,因为访问一次数据库是比较耗时的。* Load()方法的懒加载*如果在session关闭之前都没有对数据库进行访问或进行对所load的对象进行初始化即:Hibernate. initialize(employeeSet) ,则肯定会报错。因为在为访问数据库之前load()方法懒加载返回的是一个对象的代理,获取它的属性转载 2015-07-23 09:02:53 · 684 阅读 · 0 评论 -
org.hibernate.MappingException: Could not determine type for: String, at table: Elec_Text, for colum
org.hibernate.MappingException: Could not determine type for: String, at table: Elec_Text, for columns: [org.hibernate.mapping.Column(textName)]这个问题是因为,hibernate的hbm.xml配置文件,数据类型写错了。原创 2015-08-02 17:27:45 · 583 阅读 · 2 评论 -
Hibernate 主键介绍
Hibernate有如下主键:Native:Native主键生成方式会根据不同的底层数据库自动选择Identity、Sequence、Hilo主键生成方式。特点是根据不同的底层数据库采用不同的主键生成方式。由于Hibernate会根据底层数据库采用不同的映射方式,因此,便于程序移植,项目中如果用到多个数据库时,可以使用这种方式。Assigned:Assigned方式由程序生成主键值,并且要在s原创 2015-07-21 17:42:15 · 516 阅读 · 0 评论 -
在Hibernate中,使用二级缓存机制要注意什么?
Hibernate中使用二级缓存时要注意的几点如下:二级缓存能够明显提高系统的性能,当然,如果数据量特别巨大,此时不适合于二级缓存,原因是缓存的数据量过大可能会引起内存资源紧张,反而降低性能。对于数据更新频率过高的数据,频繁地同步缓存中数据的代价可能和查询缓存中的数据从中获得的好处相当,坏处和益处相抵消,此时缓存的意义也不大。财务数据等非常重要的数据,绝对不允许出现或使用无效的数据,所以此时为原创 2015-07-21 13:10:38 · 1037 阅读 · 0 评论 -
Hibernate中 对象 的三种状态
在Hibernate中,可以把实体对象看成3中状态,分别是:瞬时态(临时态)、持久态、脱管态(游离态)。临时态转换 通过new创建的对象为瞬时态通过delete方法操作的对象将转变为瞬时态特征 瞬时态的对象可以被垃圾回收瞬时态的对象未进行过持久化,未与session关联 持久态转换 通过get 、load 、list 、iterate 方法查询到的对象为持久态通过save 、up原创 2015-07-21 14:32:07 · 510 阅读 · 0 评论 -
hibernate的工作原理
工作原理:①读取并解析配置文件。②读取并解析映射信息,创建SessionFactory。③打开Session④创建事务Transaction。⑤持久化操作。⑥提交事务。⑦关闭Session。⑧关闭SessionFactory。概述:Hibernate可以理解为是一个中间件,它负责把Java程序的SQL语句接收过来并发送到数据库,而数据库返回来的信息由Hibernate接收后直接生原创 2015-07-21 07:37:57 · 925 阅读 · 0 评论 -
Hibernate之HelloWorld
1、新建一个Java Project项目HibernateDay01_HelloWorld2、导包:你可以去Hibernate官网www.hibernate.org去下载最新的(例:hibernate-release-4.3.10.Final)包。解压后: 里面的/lib/required下的是必须的jar包,需在新建项目中导入。 /project/etc/hibernate.cfg.xml为原创 2015-07-07 19:43:08 · 463 阅读 · 0 评论 -
Hibernate 中 一对多、多对一、 关联关系的 配置
多对一:(街道→区县)* TBLJd.java 类*public class TblJd implements java.io.Serializable { // Fields private Integer jdid; private TblQx tblQx; private String jd; private Set tblFwxxes = new Ha原创 2015-07-25 13:57:56 · 622 阅读 · 0 评论 -
Hibernate的5个核心接口:Session、SessionFactory、Transaction、Query和Configuration
Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句)。需要注意的是,Session对象是非线程安全的,同时,Hibernate的Session不同于JSP应用中的HttpSession。这里当使用Session这个术语时,其实指的是Hibernate中的Session,而以后会将HttpSession对象称为用户原创 2015-07-25 11:36:25 · 4505 阅读 · 0 评论 -
HTTP Status 500 - java.lang.Long cannot be cast to java.lang.Integer
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer根据定位:找到出错的 代码位置通过调用 allCount 方法,查询出,fw 信息的总数量。 String hql1 = "select count(fw) from TblFwxx as fw where fw.tblUser原创 2015-07-26 11:07:05 · 2758 阅读 · 0 评论 -
Hibernate中根据日期(天数)来查询
最近在房屋出租系统中,遇到了根据日期来进行查询发不过的房屋信息。但是,具体用那个函数来进行计算日期,最终找到了一个较简便的方法,如下: <tr> <td>发布日期:</td> <td> <select name="check.date" style="width:80">原创 2015-07-25 11:14:02 · 1660 阅读 · 0 评论