Hibernate 多表查询 - Criteria添加子字段查询条件 - 出错问题解决
Criteria 查询条件如果是子对象中的非主键字段会报 could not resolve property
private Criteria getCriteria(Favorite favorite) {
Criteria criteria = importDaoService.favoriteDao.getCriteria();
if (favorite.getStatus() != null) {
criteria.add(Restrictions.eq("status", favorite.getStatus()));
}
Product product = favorite.getProduct();
if (product != null && product.getProductName() != null && !product.getProductName().isEmpty()) {
// criteria.createAlias("product", "p");
criteria.add(Restrictions.like("product.id", product.getProductName(), MatchMode.ANYWHERE));
}
return criteria;
}
以上运行正常。
然而....
private Criteria getCriteria(Favorite favorite) {
Criteria criteria = importDaoService.favoriteDao.getCriteria();
if (favorite.getStatus() != null) {
criteria.add(Restrictions.eq("status", favorite.getStatus()));
}
Product product = favorite.getProduct();
if (product != null && product.getProductName() != null && !product.getProductName().isEmpty()) {
// criteria.createAlias("product", "p");
criteria.add(Restrictions.like("product.productName", product.getProductName(), MatchMode.ANYWHERE));
}
return criteria;
}
这么写就会报错。

最后... ,查了相关资料发现:
如果是非主键字段必须要给父对象的字段取别名。
private Criteria getCriteria(Favorite favorite) {
Criteria criteria = importDaoService.favoriteDao.getCriteria();
if (favorite.getStatus() != null) {
criteria.add(Restrictions.eq("status", favorite.getStatus()));
}
Product product = favorite.getProduct();
if (product != null && product.getProductName() != null && !product.getProductName().isEmpty()) {
criteria.createAlias("product", "p");
criteria.add(Restrictions.like("p.productName", product.getProductName(), MatchMode.ANYWHERE));
}
return criteria;
}
完美运行!
Hibernate 多表查询 - Criteria添加子字段查询条件 - 出错问题解决的更多相关文章
- ASP.NET MVC 5 - 给电影表和模型添加新字段
在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entit ...
- [转]ASP.NET MVC 5 - 给电影表和模型添加新字段
在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entit ...
- iOS开发-在表单元中添加子视图
#import <UIKit/UIKit.h> @interface NameAndColorCellTableViewCell : UITableViewCell @property(c ...
- Elasticsearch 复合查询——多字符串多字段查询
前言 有时我们在搜索电影的时候,包含了多个条件,比如主演是周星驰,打分8分以上,上映时间是1990年~2001年的,那么Elasticsearch又该如何帮我们做查询呢?这里我们可以用 bool 查询 ...
- Asp.Net MVC4入门指南(7):给电影表和模型添加新字段
在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entit ...
- 在oracle数据库表中没有添加rowid字段为什么会出现?
rowid 是 oracle 数据库表中的伪列, rowid 首先是一种数据类型,它唯一标识一条记录物理位置, 基于64位编码的18个字符显示.因为 rowid 是伪列, 所以并未真的存储在表中,但可 ...
- mysql多表查询之子语句查询
1.子语句查询 1.1子语句查询出来的结果集作为临时表名使用 select * from (select * from person) as aaa; -- as这个起别名关键字是可以省略的 1.2查 ...
- dede自定义表单增加添加时间怎么弄
我们在用dedecms添加自定义表单时有时想要设置一个用户提交的时间,方便查询,比如我们的客服人员查询昨天晚上下班后有哪些订单是刚生成的,比较好查看,如下图所示.那么,dedecms自定义表单增加添加 ...
- Django模型层之字段查询参数及聚合函数
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. 字段查询是指如何指定SQL WHERE子句的 ...
随机推荐
- HTML基本标签元素
HTML: 超文本标记语言(HyperText Mark-up Language ) 1.作用:写网页结构 2.HTML不区分大小写,建议小写 3.文件后缀 .html 或者 .ht ...
- 1118 Birds in Forest (25 分)
Some scientists took pictures of thousands of birds in a forest. Assume that all the birds appear in ...
- 3D max模型导入unity 3D中注意事项
一.单位,比例统一 在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序需要缩放也可以统一调整缩放比例.统一单位为米. ...
- P5175 数列(矩阵加速)
//minamoto #include<bits/stdc++.h> #define R register #define ll long long #define fp(i,a,b) f ...
- “我要点爆”微信小程序云开发实例
使用云开发进行微信小程序“我要点爆”的制作 下一章:“我要点爆”微信小程序云开发之项目建立与我的页面功能实现 接下来我将对“我要点爆”微信小程序进行完整的开源介绍 小程序名称: 我要点爆 查看方式:从 ...
- 关于在linux系统环境下解压rar压缩文件
如果在zip压缩文件,可以使有unzip来进行解压.可以直接使用yum进行下载. 但如果是rar类型压缩文件,使用yum就可能无法直接安装. 要到网址:https://www.rarlab.com/d ...
- go系列(3)- go框架beego以及redis的使用
这篇讲讲如何在beego框架使用redis. golang中比较好用的第三方开源redisclient有: go-redis 源码地址:https://github.com/go-redis/redi ...
- Zynq7000开发系列-2(VMware与Ubuntu安装使用)
一.前言 在嵌入式开发中,是无法避免使用Linux系统的,因为在开发之前必须先搭建起交叉编译环境,而后关于Bootloader.Linux Kernel的裁剪移植,File system的制作,底层驱 ...
- PyAudio 实现录音 自动化交互实现问答
Python 很强大其原因就是因为它庞大的三方库 , 资源是非常的丰富 , 当然也不会缺少关于音频的库 关于音频, PyAudio 这个库, 可以实现开启麦克风录音, 可以播放音频文件等等,此刻我们不 ...
- StretchDIBits速度测试(HALFTONE)
StretchDIBits速度测试(HALFTONE) 下面实验中显示窗口大小为1024*768,拉伸模式设为HALFTONE. 一.单通道图像 (1) 保持图像高度为1024,宽度从24到2024递 ...