文档章节

Hibernate 中<Property>中的formula属性

 街头浪子
发布于 2016/01/18 15:47
字数 330
阅读 151
收藏 0


 

Property元素中的formula允许对象属性包含导出值,比如sum、average、max等的结果。如:

<property name="averagePrice" formula="(select avg(pc.price) from PriceCatalogue pc, SelectedItems si where si.priceRefID=pc.priceID)"/>  

此外,formula还可以基于当前记录的特定属性值从另一个表检索值。例如:

 

  1. <property name="currencyName" formula="(select cur.name from currency cur where cur.id= currencyID)"/>   

代码

<property name="notIncomeFee" type="java.lang.Double" formula="(case when fee_authorize is null then 0 else fee_authorize end)-(select (case when sum(i.fee_sum) is null then 0 else sum(i.fee_sum) end) from S_PROJECT_INCOME i where i.project_id=id and i.CHECK_STATUS_ID=2)">

  1. 注意:
    1,formula="()",里面的是sql语句,字段和表名都应该和数据库相应,而不是字段,若带有参数如cur.id= currencyID,这个currencyID才是对象的东东.
    2,formula="( sql )",这个括号不能少,不然会报错,我试了几次,没括号就报错,添上就没问题
    3,操作字段一定要用别名

问题:
 1,org.springframework.orm.hibernate3.HibernateSystemException: Null value was assigned to a property of primitive type setter of 
没用别名,会出现这个错误,添个别名就好了

2,如果我要用obj.getSchNum()得到想要的值,该对象(obj)必须是hibernate取得的对象,

3,如果要传入参数,如上面那个,currencyID是该对象的属性,它的值也是有hibernate操作当前对象时,把该属性对应的值自动传入进去.

© 著作权归作者所有

粉丝 0
博文 43
码字总数 13169
作品 0
海淀
程序员
私信 提问
Hibernate 中 formula的简单应用

在一个项目的某一个查询场景中,TEACHER表是主表,STUDENT表是TEACHER的子表,两者是以一对多的方式关联。业务逻辑需要查询多条TEACHER表的数据,并且在查询出每条A表数据的同时还需要将对应...

mr桀骜不驯
2013/03/09
1K
0
Hibernate 映射基础 单个持久类与单个数据库表映射

一、单个持久化类与单个数据库表映射基础 1、在Hibernate应用中,持久化类的访问方法有两个调用者:(默认的持久化类要有默认的构造函数、setXX、getXXX方法) ①、Java应用程序:调用User对象...

Winnie007
2015/08/18
59
0
Hibernate 中中的formula属性的使用

Hibernate 中 formula属性的好用处在于 无需在数据库有真实的列 只需要写出sql 就可以创建一个虚拟的列 然后在 Dao层的查询中使用 ,比如在表 MConfirmation 中有两列 ConfirmationCost 和 ...

业余编程人士
2014/02/28
1K
0
数据库派生属性

派生属性写法:(只在hibernate框架下使用过,其他没有测试。) (主要解决一个实体javabean有A字段,但是本实体对象对应的数据表没有A字段。需要从其他表中获取本字段) 从其他数据库获取数...

李永china
2016/04/27
61
0
学习hibernate(四) -- hibernate常用配置

hibernate.cfg.xml的常用属性配置。 在进行项目开发时,建议选择一款数据源包来托管数据库连接。hibernate包中有一组包叫c3p0,它是一个开源的JDBC连接池,实现了数据源与JNDI绑定,支持JDB...

杰克鹏仔
2016/03/27
99
0

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
今天
6
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
今天
9
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
今天
5
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
今天
7
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
今天
7
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部