当前位置:首页 > 开发 > 开源软件 > 正文

Hibernate访问实体类

发表于: 2014-11-06   作者:csolar   来源:转载   浏览:
摘要: 1 Java应用程序不能访问private类型的getXXX()、setXXX(),而Hibernate则没有这个限制。 2 如果持久化类的属性是基本数据类型,则无法接收null值。 3 <property>的access属性用于指定Hibernate访问持久化类的属性的方式。 property(默认)表示通过getXXX()和setXXX()访问属性。 field表示
1 Java应用程序不能访问private类型的getXXX()、setXXX(),而Hibernate则没有这个限制。

2 如果持久化类的属性是基本数据类型,则无法接收null值。

3 <property>的access属性用于指定Hibernate访问持久化类的属性的方式。
property(默认)表示通过getXXX()和setXXX()访问属性。
field表示通过反射机制访问属性。

4 派生属性:利用<property>的formula属性,设置一个SQL表达式。
<proper name="totalPrice"
    formula="(select sum(o.PRICE) from ORDERS o where o.CUSTOMER_ID=ID)" />
<=>
select ID,NAME,SEX,
    (select sum(o.PRICE) from ORDERS o where o.CUSTOMER_ID=1) from CUSTOMERS;

5 Hibernate在初始化阶段,会根据映射文件的配置信息为所有持久化类预定义SQL语句。
insert语句
insert into ORDERS(ID,ORDER_NUMBER,PRICE,CUSTOMER_ID) values(?,?,?,?)
update语句
update ORDERS set ORDER_NUMBER=?,PRICE=?,CUSTOMER_ID=? where ID=?
delete语句
delete from ORDERS where ID=?
通过OID加载实体类
select ID,ORDER_NUMBER,PRICE,CUSTOMER_ID from ORDERS where ID=?
预定义SQL存放在SessionFactory的内置缓存中,当执行Session的save()、update()、delete()、load()、get()方法时,将从缓存中找到相应的预定义SQL,再把具体的值绑定到该SQL中。
HQL或QBC查询对应的select语句在执行时才动态生成。

Hibernate访问实体类

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号