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里面。

最新文章

  1. MySQL数据导出
  2. Java--CyclicBarrier同步屏障原理,使用
  3. [转]NullPointerException异常
  4. jquery.validation.js 表单验证
  5. shell script练习
  6. 12306外包给阿里巴巴/IBM到底是否可行?
  7. Burp Suite详细使用教程
  8. Struts2技术内幕-----第七章
  9. 微信平台BAE
  10. PE文件结构(五岁以下儿童)基地搬迁
  11. Chapter 21_2 模式匹配函数
  12. Windows下编译mxnet
  13. Go语言学习笔记(三)数组 & 切片 & map
  14. BZOJ 1037: [ZJOI2008]生日聚会Party [序列DP]
  15. logisim元件清单
  16. _trigger
  17. 【BZOJ4025】二分图
  18. (Set) 人见人爱A-B HDU2034
  19. .NET Core开发日志——WCF Client
  20. Ribbon 负载均衡机制

热门文章

  1. java内存映射文件
  2. pthread_wrap.h
  3. 使2个div 在一行上显示
  4. Spring+Maven配置等问题
  5. Java 比较两日期相差天数
  6. set up blog on github
  7. codeforces 613A. Peter and Snow Blower
  8. A Byte of Python 笔记(7)数据结构:列表、元组、字典,序列
  9. java ee环境搭建
  10. 面试题:给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字