【Hibernate】HQL new map
HQL 查询如果需要带出对象(比如:OneToOne子对象)的一两个属性,而不是全部带出。可以使用 select new map的方法带出。
	1.lazy还是设置为false
/**关联属性对象*/
@OneToOne(cascade=CascadeType.PERSIST, fetch=FetchType.LAZY)
@JoinColumn(name="PROPERTY_ID", referencedColumnName="ID")
private Property property;
2.使用select new map(propertyId为要带出的子对象ID属性值)
private static final String HQLPAGE = "from Plugin p where p.state=1 and p.name like :name";
String hqlResult ="select new map(id as id,prictureUrl as prictureUrl,name as name,priceFormula as priceFormula,sort as sort,isShow as isShow,property.id as propertyId) " + HQLPAGE;
注:
	如果带出的是一整个property对象的话,用jackson对对象进行转换的时候会报错。
	这时候要将带出的对象设置为fetch=FetchType.EAGER
如果有多步增加操作,可在Service层添加@Transactional
	这样如果出错全部操作都会回滚
3.想要先添加property对象,然后再把property对象放进plugin里面的话,有两种方法。
/**关联属性对象*/
@OneToOne(cascade=CascadeType.PERSIST, fetch=FetchType.LAZY)
@JoinColumn(name="PROPERTY_ID", referencedColumnName="ID")
private Property property;
1.在CascadeType.PERSIST的情况下,设置为瞬时对象,必须将property对象先保存到数据库里面,在放进plugin里面。
	2.在CascadeType.ALL的情况下,可以直接新建对象,然后放进plugin里面。
【Hibernate】HQL new map的更多相关文章
- 【SSH】——hql的使用方式及实现原理
		[含义] hql,即Hibernate Query Language.它与我们熟知的sql很类似,它最大的特点就是对查询进行了面向对象的封装,下面会在具体例子中说明. sql查询的是数据库中的表或字 ... 
- 【Hibernate】Hibernate的多表查询
		在<[Hibernate]Hibernate的聚类查询.分组查询.排序与时间之差>(点击打开链接)一文中已经讲述过怎样利用HQL语句代替SQL语句.进行聚类查询.分组查询.排序与时间之差的 ... 
- 【hibernate】映射继承关系
		[hibernate]映射继承关系 转载:https://www.cnblogs.com/yangchongxing/p/10405151.html ========================= ... 
- 【hibernate】自定义转换器
		[hibernate]自定义转换器 转载:https://www.cnblogs.com/yangchongxing/p/10398255.html 1.转换基本属性 package cn.ycx.s ... 
- 【hibernate】存储图片
		[hibernate]存储图片 转载: package cn.ycx.study.hibernate.entity; import javax.persistence.Entity; import j ... 
- 【hibernate】映射可嵌入式组件
		[hibernate]映射可嵌入式组件 转载:https://www.cnblogs.com/yangchongxing/p/10376452.html 可嵌入 Address 类,没有对应的数据表 ... 
- 【hibernate】应用程序级别的视图
		[hibernate]应用程序级别的视图 转载:https://www.cnblogs.com/yangchongxing/p/10361281.html 在没有数据库修改权限时,像创建视图可以使用 ... 
- 【hibernate】重写物理表名和列明
		[hibernate]重写物理表名和列明 转载:https://www.cnblogs.com/yangchongxing/p/10357123.html 假设你的数据库命名有这样的需求,表都以 yc ... 
- 【hibernate】常用注解
		[hibernate]常用注解 转载:https://www.cnblogs.com/yangchongxing/p/10357118.html 目录 ======================== ... 
随机推荐
- BZOJ 3444: 最后的晚餐(  )
			把暗恋关系看成无向边, 那某个点度数超过2就无解.存在环也是无解.有解的话对连通分量进行排列就行了. ------------------------------------------------- ... 
- UVa 1658 Admiral(最小费用最大流)
			拆点费用流 --------------------------------------------------------------------- #include<cstdio> # ... 
- Oracle系统视图
			VIEW TABLES 1.DBA_TABLES --查看系统里所有表的信息,只有DBA权限用户才可查看 SELECT * FROM DBA_TABLES WHERE OWNER='HR' AND T ... 
- 一个Sqrt函数引发的血案(转)
			作者: 码农1946 来源: 博客园 发布时间: 2013-10-09 11:37 阅读: 4556 次 推荐: 41 原文链接 [收藏] 好吧,我承认我标题党了,不过既然你来了, ... 
- 用Visual C++设计“精灵”窗体
			随着Microsoft凭借Windows在操作系统上取得的巨大成绩,Windows用户界面也日益成为业界标准.统一的界面给广大用户对应用软件的学习与使用带来了很大方便.但每天都面对同一副面孔,日久天长 ... 
- maven 添加自己的包
			mvn install:install-file -Dfile=d:/flea.jar -DgroupId=com.flea.bussiness -DartifactId=flea -Dversion ... 
- HDU 4569 Special equations (数学题)
			题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4569 题意:给你一个最高幂为4的一元多项式,让你求出一个x使其结果模p*p为0. 题解:f(x)%(p ... 
- Intersecting Lines(数学)
			Intersecting Lines Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12844 Accepted: 57 ... 
- js中函数参数基本类型和引用类型的区别
			高级程序设计中说明,所有函数的参数都是按值传递的. 基本类型 向参数传递基本类型的值时,被传递的值会被复制给对应的命名参数 function addTen(num){ num=+10; return ... 
- js动画学习(一)
			一.运动框架实现思路 1.匀速运动(属性值匀速变化)(改变 left, right, width, height, opacity 等): 2.缓冲运动(属性值的变化速度与当前值与目标值的差成正比): ... 
