mysql自动计算派生属性,设置派生属性(数据库中没有设置该字段,而要在持久化类中通过计算得到的新属...

并不是持久化类的所有属性都直接和表的字段匹配,持久化类的有些属性的值必须在运行时通过计算才能得出来,这种属性称为派生属性。

有两中方法:

1. 在映射文件中不映射新的属性。而在持久化类中定义一个新属性的set方法加入逻辑计算,在程序中通过调用该方法给原属性附值。

2. 利用元素的formula属性。Formula属性用来设置一个SQL表达式,Hibernate将根据它来计算出派生属性的值。下面以Customer类的totalPrice属性为例,介绍元素的formula属性的用法。Customer类的totalPrice属性表示可户所有的定单价格总和,他的取值与Customer对象关联的所有Order对象的price属性值的和。在CUSTOMERS

表中么对应的TOTAL_PRICE字段。在Customer.xml文件中映射totalPrice属性的代码如下:

from ORDERS o where o.CUSROMER_ID=ID)”/>

当Hibernate从数据库中查询Customer对象时,在select语句中会包含以上用于计算的totalPrice派生属性的子查询语句:

Select ID,NAME,SEX,(select sum(o.PRICE) from ORDERS o where

o.CUSTOMER_ID=1)from CUSTOMERS;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值