
Hibernate
文章平均质量分 71
麦田
生命本来就是一束耀眼的花火...
展开
-
Hibernate之缓存机制(一级缓存)
Hibernate缓存是一种提高系统性能的比较好的工具,如果使用合理,则能极大地提高系统性能,但如果使用不合理也会使系统性能下降。Hibernate缓存比较复杂,要想灵活使用hibernate缓存,必须深入研究Hibernate缓存原理。Session缓存(一级缓存):当调用Session的保存、更新、查询操作时,在Session缓存中不存在相应对象,则把这些对象加入Session缓存翻译 2012-01-01 15:05:02 · 2548 阅读 · 0 评论 -
Hibernate之一对多cascade,inverse
一个Student对应一个Classes,一个Classes包含多个Student; 元素的cascade属性表名操作是否从父对象级联到被关联的对象,它的取得可以是原创 2011-12-31 21:18:20 · 1617 阅读 · 0 评论 -
重拾Hibernate(1)之环境配置
1、新建Web Project工程2、导入所需jar包 3、Student.javapackage com.itmyhome;import javax.persistence.Entity;import javax.persistence.Table;@Entity@Table(name="T_STUDENT")public class Stude原创 2013-03-30 16:43:47 · 2967 阅读 · 0 评论 -
Hibernate之条件查询(Criteria Queries)
1、创建一个Criteria 实例 org.hibernate.Criteria接口表示特定持久类的一个查询。Session是Criteria实例的工厂。Criteria crit = session.createCriteria(Teacher.class); crit.setMaxResults(50); List cats = crit.list();2、限制原创 2013-04-13 17:19:03 · 3762 阅读 · 1 评论 -
Hibernate之AbstractEntityPersister
Hibernate开发中需要根据持久层对象获取所映射的数据库表相关信息,如表名,主键,外键对象等相关系。Hibernate配置 Hibernate.cfg.xml<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "htt原创 2013-10-25 12:45:20 · 4314 阅读 · 0 评论 -
org.hibernate.MappingException: No Dialect mapping for JDBC type: -4
Stacktracesorg.hibernate.MappingException: No Dialect mapping for JDBC type: -4 org.hibernate.dialect.TypeNames.get(TypeNames.java:56) org.hibernate.dialect.TypeNames.get(TypeNames.java:81)原创 2015-06-11 22:22:55 · 4119 阅读 · 0 评论 -
org.hibernate.id.IdentifierGenerationException错误解决方法
org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():ID主键生成策略为assigned 由应用程序负责生成主键标识符 而在保存时没有设置IDsession.save(entity);导致出现此错误解决方原创 2015-07-17 22:38:20 · 15920 阅读 · 1 评论 -
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
本例错误是Hibernate产生Session session= sessionFatory.getCurrentSession();SQLQuery sqlquery= session.createSQLQuery("select * from FRM_FIELD");List fields = sqlquery.list();上面的查询是返回标量值的,Object类型,也就是从原创 2016-01-12 22:26:54 · 18618 阅读 · 1 评论 -
Hibernate主键生成策略
1、assigned主键由外部程序负责生成,在save()之前必须指定一个,Hibernate不负责维护主键生成。与Hibernate和底层数据库都无关,可以跨数据库。id name="groupid" column name="GROUPID"> generator class="assigned" />id>2、sequence采用数据库提供的sequence原创 2017-02-08 18:00:49 · 1767 阅读 · 0 评论 -
Every derived table must have its own alias
如下SQL语句:SELECT * FROM ( SELECT ID,URL FROM alone_action WHERE STATE = '1' ) 在Oracle中可以执行,但在MySQL下无法通过,错误如下:查询:SELECT * FROM ( SELECT ID,URL FROM alone_action WHERE STATE = '1' ) LIMIT 0, 1原创 2017-02-03 18:00:47 · 1981 阅读 · 0 评论 -
Hibernate之one-to-one主键关联映射
one-to-one映射的例子为一个人拥有一个身份证,一个身份证属于一个人。先创建po类Person.javapackage po;public class Person { private int id; private String name; //姓名 public int getId() { return id; } pu原创 2011-12-30 21:54:42 · 1822 阅读 · 0 评论 -
Hibernate之one-to-one双向外键关联Annotation
Husband.javapackage com.itmyhome.model;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax原创 2012-04-15 19:12:50 · 2849 阅读 · 0 评论 -
Hibernate之get()和load()
hibernate可通过get()和load()获取对象,而他们又有所不同。1、如果未能找到符合条件的记录,get()方法返回null(NullPointException异常),而load()将会报ObjectNotFountException2、load()方法返回实体的代理类,而get()永远只返回实体类3、load()方法可以充分利用二级缓存和内部缓存的现有数据,而get()方原创 2012-04-14 20:13:53 · 1803 阅读 · 0 评论 -
Hibernate之one-to-one单向外键关联Annotation
Husband.javapackage com.itmyhome.model;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import java原创 2012-04-15 19:03:50 · 5650 阅读 · 4 评论 -
hibernate Configuration
Configuration是hibernate的入口,在新建一个Configuration实例的时候,hibernate会在classpath里查找hibernate.cfg.xml或者hibernate.properties文件最常见的使用Configuration方法是Configuration config = new Configuration().configure();原创 2012-03-03 12:18:37 · 2916 阅读 · 0 评论 -
Hibernate Annotation配置主键生成策略
通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id其生成规则由@GeneratedValue设定的,这里的@Id和@GenertedValue都是JPA的标准用法JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTOTABLE:使用一个特定的数据库表格来保存主键SEQUENCE:根据地层数原创 2012-04-14 13:12:57 · 18052 阅读 · 0 评论 -
Hibernate之openSession和getCurrentSession
hibernate通过SessionFactory有两种方式获取session: 一种是openSession 一种是getCurrentSession区别: a)openSession创建session时autoClassSessionEnabled参数为false,即在事务结束后不会自动关闭session 需要手动关闭 b)getCurrentSession创建s原创 2012-04-14 19:38:51 · 2796 阅读 · 1 评论 -
Hibernate之Query接口的uniqueResult()方法
如果查询返回多个值用list()方法public void testQuery(){ Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSessionFactory(); //创建SessionFactory Session session原创 2011-12-26 21:15:30 · 33484 阅读 · 3 评论 -
Hibernate之one-to-one外键关联映射
在hibernate一对一实体映射中,常用有两种方式,一种就是把一对一看作多对一的一个特例,即通过外键参考。另一种是通过主键参考,限制两个数据表中的主键使用相同的值。po类Person.javapackage po;public class Person { private int id; private String name; //姓名原创 2011-12-30 22:21:59 · 2246 阅读 · 0 评论 -
Hibernate之lazy懒加载
Hibernate Lazy采用CGLIB,可以对类进行代理,用在:one-to-one,many-to-one: 取false,proxy/noproxyHibernate lazy概念:只有真正使用对象时,才会创建,对于Hibernate来说,只有真正使用时才会发出sql.测试:one-to-oneCard.javapackage com.po;public cla原创 2012-01-01 01:33:56 · 2146 阅读 · 0 评论 -
Hibernate 简单的annotation
package com.itmyhome.model;import java.util.Date;import javax.persistence.Basic;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;import javax.原创 2012-04-14 11:07:44 · 2260 阅读 · 0 评论 -
Hibernate之对象三种状态
Hibernate 对象三种状态:Transient瞬时状态、Persistent持久状态、Detached游离状态瞬时状态:用new创建的对象,没有被持久化,没有处于Session中 表示该实体对象在内存中是自由存在的,也就是说与数据库中的数据没有任何的关联,与Session没有任何关系, 也就是没有通过Se原创 2012-04-14 18:42:11 · 2421 阅读 · 0 评论 -
Hibernate通过SQL查询常量时只返回第一个字符解决方法
在做统计查询的时候需要使用到一个常量,如session.createSQLQuery("select '张三' as name from tab").list() 查询,结果只返回了一个 ‘张’。常量在数据库中被认为是CHAR类型的,Hibernate取值时将其保存为Character类型,而Character只能保存一个字符,所以造成返回值只存在一个字符。解决方法:1...原创 2018-02-10 23:19:43 · 2024 阅读 · 0 评论