2. 保存记录
3. 删除记录
1. 获取记录
我们再来看看其它几种方式:
session.Delet(person);
1. Load
是不是感觉和Get一样?其实……很不一样!
Get在找不到对象时会返回一个null引用,而Load则会抛出一个ObjectNotFoundException,所以,不应该用Load来判断记录是否存在。另外还有两条非常重要的区别,我们将放在高级话题讨论。
2. Query
~!#@^?? from Person??#$@*&^$
Person person = (Person)list[0];
这是虾米??
好象有点象SQL,不过少了个select啊!而且也没有表名啊!
这就是久负盛名的HQL——Hibernate Query Language!
HQL实际上是基于对象查询的一种仿SQL脚本,在运行期间,Hibernate会自动根据映射关系将之转换为真正的SQL语句来执行。
什么?又一种SQL?不是说使用O/R Mapping就可以不写SQL了吗,怎么又多了一种“SQL”??
当然不是这样了,之所以产生HQL,就是为了能够更加灵活更加面向对象地操作数据,而且你不应该把HQL当成一种新的SQL,因
为它——太简单好学了!
看看下面的HQL,是不是很熟悉??
select Name from Person where Age>20
select Id,Name from Person where Id>1 and Age>20