hibernate的基本知识点和常见错误

Session有几个主要的方法:

1.Sava,persist保存数据,persist在事务外不会产生insert语句。

2.delete删除对象

3.update更新对象,如果数据库没有记录,会出现异常

4.get根据id查,会立刻访问数据库

5.load根据id,返回的是代理,不会访问数据库

6.saveOrUpdate,merge(根据ID和version的值来确定是save或update)调用merge你的对象还是托管。

7.lock

实体对象的三种状态:

1瞬时状态:数据库中没有数据与其对应,超过作用域会被jvm垃圾回收器回收,一般是new出来与session没有关联的对象

2.持久状态:数据库中有数据与之对应,与session有关联

3,.脱管状态:数据库与数据与之对应,但当前没有session与之对应

Hql和sql的区别

Hql是操作对象的,sql是操作关系的

常见的问题1

在数据库能够看见刚才录入的记录,但是当我再次插入的时候,那么第一条的记录就会被第二条的记录覆盖掉。这个可能和你的配置文件有关,在学习hibernate的时候,我们数据库表都是自动生成的。当你在配置文件选用了create而不是update的时候,每次测试的时候都会重新创建。
常见的问题2
如果映射类和数据库里面的表冲突,我们可以利用table属性,对表重命名。
属性冲突:可以利用clomus

常见的问题3

如果你的hql语句是这样的查找:from user as usertable where usertable.user=:n;

这句话的as的意思对将来的表进行重命名, :n比占位符更加科学。

Query.getstring(“n”,aa);

分页查询:

Query.setfristresults(20)//开始的符合条件的语句

Query.setmaxresults(10);查找10条

查询有两种:

一种query要写hql语句的这个面向关系,官方建议

还有种 criteria这个类,这个更加面向对象。

你可能感兴趣的:(Hibernate)