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的更多相关文章

  1. 【SSH】——hql的使用方式及实现原理

    [含义] hql,即Hibernate Query  Language.它与我们熟知的sql很类似,它最大的特点就是对查询进行了面向对象的封装,下面会在具体例子中说明. sql查询的是数据库中的表或字 ...

  2. 【Hibernate】Hibernate的多表查询

    在<[Hibernate]Hibernate的聚类查询.分组查询.排序与时间之差>(点击打开链接)一文中已经讲述过怎样利用HQL语句代替SQL语句.进行聚类查询.分组查询.排序与时间之差的 ...

  3. 【hibernate】映射继承关系

    [hibernate]映射继承关系 转载:https://www.cnblogs.com/yangchongxing/p/10405151.html ========================= ...

  4. 【hibernate】自定义转换器

    [hibernate]自定义转换器 转载:https://www.cnblogs.com/yangchongxing/p/10398255.html 1.转换基本属性 package cn.ycx.s ...

  5. 【hibernate】存储图片

    [hibernate]存储图片 转载: package cn.ycx.study.hibernate.entity; import javax.persistence.Entity; import j ...

  6. 【hibernate】映射可嵌入式组件

    [hibernate]映射可嵌入式组件 转载:https://www.cnblogs.com/yangchongxing/p/10376452.html 可嵌入 Address 类,没有对应的数据表 ...

  7. 【hibernate】应用程序级别的视图

    [hibernate]应用程序级别的视图 转载:https://www.cnblogs.com/yangchongxing/p/10361281.html 在没有数据库修改权限时,像创建视图可以使用 ...

  8. 【hibernate】重写物理表名和列明

    [hibernate]重写物理表名和列明 转载:https://www.cnblogs.com/yangchongxing/p/10357123.html 假设你的数据库命名有这样的需求,表都以 yc ...

  9. 【hibernate】常用注解

    [hibernate]常用注解 转载:https://www.cnblogs.com/yangchongxing/p/10357118.html 目录 ======================== ...

随机推荐

  1. vector中resize和reserve的区别,代码验证

    #include <vector> using namespace std; int main() { vector<int> resizeVect; vector<in ...

  2. Java 网络编程(六) 使用无连接的数据报(UDP)进行通信

    连接地址:http://www.cnblogs.com/mengdd/archive/2013/03/10/2952673.html 使用无连接的数据报(UDP)进行通信 什么是Datagram? 数 ...

  3. eclipse:Tomcat设置jvm,解决java.lang.OutOfMemoryError: Java heap space 堆内存溢出

    eclipse 有启动参数里设置jvm大小,因为eclipse运行时自己也需要jvm,所以eclipse.ini里设置的jvm大小不是具体某个程序运行时所用jvm的大小,这和具体程序运行的jvm大小无 ...

  4. 虚拟机ping不通主机

    centos ping不通主机 首先检查网络设备 ifconfig -a 如果有eth0 , 又存在 eth1 . 那么service eth1 stop  然后在ping主机.(以上前提是网络地址设 ...

  5. Git merge local repository

    I've met this problem for so many times and let me write a blog for solving this problem. First, you ...

  6. 国内外主流BI厂商对比

    BI(Business Intelligence),即商业智能或者商务智能,它是一套完整的解决方案,用来将企业中现有的数据进行有效的整合,快速准确的提供报表并提出决策依据,帮助企业做出明智的业务经营决 ...

  7. Teclast/台电 P98HD四核测评9.7寸台电P98HD 评测体验 (转载)

    自从苹果新iPad上市推出后,拥有Retina高清屏幕分辨率的平板让我们的视线一下子变得“清晰”起来,超高2048x1536分辨率也成为厂商们追捧的对象,在经历了双核时代配备高清分辨率对于硬件性能承载 ...

  8. UBER司机奖励政策

    高峰时段: 早高峰:早6:30-8:30点 晚高峰:晚4:00-7:00点 *周六日只有晚高峰 其他时间均为平峰时段 滴滴快车单单2.5倍,注册地址:http://www.udache.com/如何注 ...

  9. 使用jodconverter和swftools实现文件在线预览

    参考:仿百度文库解决方案(四)——利用JODConverter调用OpenOffice.org服务转换文档为PDF 文档在线预览主要用到如下两个工具 1,安装openoffice(同时下载jodcon ...

  10. Just another Robbery(背包)

    1079 - Just another Robbery   PDF (English) Statistics Forum Time Limit: 4 second(s) Memory Limit: 3 ...