Hibernate
深山里的天空
每次遇到难题,想办法解决后,过一段时间都会忘记,因此不如把学过的记下来,改变从现在开始!
展开
-
Hibernate 报错:caused by:org.hibernate.DuplicateMappingException:duplicate import
今天学习hibernate遇到一个错误 最后找资料解决了 但不是csdn博客 就不能转载 所以先在这里写一下我遇到的问题是 工程下有两个包:com.a.www和com.b.www 下面有相同的User.class 类和User.hbm.xml 共同在hibernate.cfg.xml中配置这两个文件 发现 报错 这是因为在同一个工程中一般不存在两个相同的实体类,如果存在 则hibernate原创 2017-03-08 21:10:18 · 746 阅读 · 0 评论 -
Hibernate 映射关系(基于注解)
提示:表与表之间的映射关系通过外键或中间表建立联系:单向外键映射关系:这里主要是指在两个映射表对象类(一对一关系)之间只有一方包含另一方的引用,比如映射对象类A与映射表对象B之间,如果只有A中有一个属性是对B的引用 private B b;那么就称为单向外键关系。双向外键映射关系;这里指双方都包含一方的引用,但如果是没有中间表,那么就要指定主控方与被控方。 上面所说的单向外键关系与映射外键原创 2017-11-28 23:33:13 · 467 阅读 · 0 评论 -
hibernate 中对象映射关系配置
在hibernate 实体类之间的关系主要分为一对多、多对多、一对一 、继承等。 一对多(对应数据库两张表):比如一个部门(Department.class)和员工(Employee.class) Department.hbm.xml配置"com.lr.oneToMany"> class name="Department" table="department"> id原创 2017-03-13 10:50:14 · 405 阅读 · 0 评论 -
Hibernate load()与get()区别
区别: get方法立即执行,不会等待事物提交后在执行,而load方法比较智能,如果后面需要用到前面的结果则会在后面代码执行前执行load方法。 load方法禁止使用懒加载的方法: 1. 由于load是返回动态生成的子类代理,所以在类写成final类型 就不会生成子类,懒加载失效。 2. 在映射文件中class设置中有lazy(默认true)设置成false。原创 2017-03-13 15:24:37 · 229 阅读 · 0 评论 -
Hibernate 中对象的四种状态
对象的四种状态 临时状态: 与数据库没有对应,跟session没有关联。 一般是新new出来的対像。 持久化状态: 对象在session的管理之中,最终会有对应的数据库记录。 特点: 1.有OID 2.对对象的修改会同步到数据库(比如从数据查询到一个对象,当修改対像的时候且在session关闭之前执行翻译 2017-03-12 22:37:31 · 382 阅读 · 0 评论 -
hibernate delete()、update()与createQuery的相同功能语句的缓存差异
学到hibernate缓存 一直比较苦恼 搞得有点头疼,今天终于发现差别了。 首先说在session缓存中,使用session.delete()、session.update()、session.update()其主要功能是改变实体对象的状态(游离、删除、持久化状态等),不完全是操纵数据库。 需要注意的是:这些更新、删除操作都是同步到session缓存中(session缓存会实时更新);但是如原创 2017-03-21 19:35:26 · 1117 阅读 · 0 评论 -
Hibernate环境配置
这段时间学点Hibernate 由于前面配置环境是按模板来配置的 所以担心不看模板会不会就忘了 所以特来写一篇温习一下。 Hibernate属于第三方的开发框架,所以 第一步导入库包:官网下载Hibernate库包 ,然后解压打开文件(这里我用的本地的老版本)夹,在lib文件夹下有四个文件夹 分别是required(开发必须的包)、optional(可选择导入的包)、jpa(必须导入的)、byt原创 2017-03-12 11:07:12 · 243 阅读 · 0 评论 -
Hibernate 映射关系 一对多 单向映射文件配置
在处理数据库实体关系时,需要配置对应的实体类映射文件这里仅有一对多关系的set、list、map; 有一个对象代码如下public class User {private Integer id;private String name;private Set<String> addressSet=new HashSet<String>();private List<String> addre原创 2017-03-09 23:13:49 · 477 阅读 · 0 评论 -
Hibernate 系统自动生成数据库表的两种方法
由于在映射配置文件中对数据库表及其之间的关系都已有对应,可以说映射配置文件中包含了数据库表的所有信息,因此Hibernate可以根据映射配置文件自动创建数据库表。 方法一:在Hibernate应用配置文件中配置如下<hibernate-configuration> <session-factory name="foo"> ......... <propert原创 2017-03-07 23:01:04 · 891 阅读 · 0 评论 -
Hibernate中的缓存
在hibernate中主要分为一级缓存和二级缓存 其中一级缓存即为Session缓存,Session缓存是默认开启且不可卸载,属于事务范围缓存,当事务结束时,缓存的生命周期结束;而二级缓存也称为SessionFactory缓存,是在数据库与Session缓存之间为了提高效率而设计的缓存,其为每个开启二级缓存的实体类开辟一块缓存区域,二级缓存是默认不开启,开启需要配置主配置文件,属于应用范围内的缓存原创 2017-03-20 09:30:17 · 252 阅读 · 0 评论 -
Hibernate 缓存机制
Hibernate中缓存主要分为–一级缓存 和二级缓存。 一级缓存:又称为Session缓存,是系统内置且不可卸载,同时属于事务范畴缓存,即事务结束时,Session缓存的生命周期结束; 二级缓存:又称SessionFactory缓存,是系统内置可供选择的缓存,默认不开启,属于应用范围内的缓存,即应用结束时,SessionFactory缓存生命周期结束。 由于hibernate缓存机制存在不原创 2017-03-19 12:01:49 · 244 阅读 · 0 评论 -
Hibernate 常用的标识生成器
在配置Hibernate映射配置文件中遇到如下情况:<hibernate-mapping package="com.hibernate.www"> <class name="User" table="t_user"> <id name="id" type="int" column="u_id"> <generator class="native">原创 2017-03-06 22:19:48 · 378 阅读 · 0 评论 -
项目中遇到的问题以及解决方案(Java后台)
有经验可以少走点弯路,所以走过的坑要记住,虽然我们不能两次踏入同一条河流,但我们可能多次掉入同一个坑! 1、最近项目做一个关于批量修改或者增加记录的功能,为了方便,就手动写一个saveOrUpdate()函数,你可能会说这个hibernate不是自带吗?我首先说一下项目的情况: 从前台传来的多条记录,是没有主键的,(因为主键自动增长,且前台可以新增或修改多条数据,所以编辑前查询也有没有显示自动增原创 2018-01-27 17:13:01 · 32644 阅读 · 0 评论