高分求一条HQL多对多查询语句

newflypig 2009-06-21 04:10:51
一个学科表(Field),一个用户表(User),多对多关系。
学科表有两个字段,id和descripiton,用户表有众多字段,不罗列了

Field中有SET集合users
User中有SET集合fields

现在要查掌握id like '520%'的女性用户


我这样写的:
from User u,Field f where u.gender='m' in (select f.users from Field where f.id like '520%')

持续报错!

高分献上,谢谢帮助
...全文
2257 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinianmutou 2011-11-18
  • 打赏
  • 举报
回复
同楼上!谢谢楼主和mouyong!O(∩_∩)O哈哈
yexiaqiu 2011-05-19
  • 打赏
  • 举报
回复
哦也,找到了,同楼上!谢谢楼主和mouyong!O(∩_∩)O哈哈~开心呐
Kinki_Yang 2011-04-27
  • 打赏
  • 举报
回复
就是找这个,谢楼主和mouyong啦!
fdg174456 2010-07-07
  • 打赏
  • 举报
回复
耶找到了
daisycool 2009-06-22
  • 打赏
  • 举报
回复
先提两个问题:

1. 根据LZ的问题,要“现在要查掌握id like '520%'的女性用户“, 根本用不着Field表啊,直接一个SELECT u FROM user WHERE id LIKE '520%' AND gender='f' 就行了。猜测一下LZ是否是想查找id为520%的用户的学科?如果是这样的话,用'SELECT u FROM user u WHERE id LIKE '520%' AND gender='f' 得到所有相关用户,然后每个用户有User.getFields()来得到所有学科啊。

2. LZ是否为这一多对多的关系建立中间表格?比如: Field --- field_user --- User,如果有的话,查询时

3. 查找女性用户,应该是gender='f'啊,LZ的是'm',但这只会导致查询结果错误。
默然说话 2009-06-22
  • 打赏
  • 举报
回复
耶!!!赚到啦!!!!150分呀~~~~~~
newflypig 2009-06-22
  • 打赏
  • 举报
回复
11楼,你的“1”让我很无奈,难道你想让我用JAVA语法去用.getFields()遍历结果集,那也太搓了吧,你老板会让你这么干?
默然说话 2009-06-21
  • 打赏
  • 举报
回复
经测试通过。可以查出来的。

select u from User u inner join u.fields f where u.gender='m' and f.id like '520%'

谢谢
默然说话 2009-06-21
  • 打赏
  • 举报
回复
Google了一下,不小心找到一条HQL,不知道合不合你用。

select f from User u inner join u.fields f where u.gender='m' and f.id like '520%'

注意,这里的f是u.fields的别名。不知道能不能解决你的问题。
默然说话 2009-06-21
  • 打赏
  • 举报
回复
语法有问题。。。。
newflypig 2009-06-21
  • 打赏
  • 举报
回复
怎么就不行呢,我好郁闷啊
select f.users from Field f where f.id like '520%'可以查
from User u where u.gender = 'm'也可以查

怎么这两个组合起来就不能查呢,我快崩溃了。。。。。。。。。。。。
newflypig 2009-06-21
  • 打赏
  • 举报
回复
我这么写select u from User u where u.gender='m' and u in (select f.users from Field f where f.id like '520%')

tomcat报这个:

Hibernate: select user0_.id as id0_, user0_.edu_level as edu2_0_, user0_.spec_id as spec3_0_, user0_.workspaceID as workspac4_0_, user0_.account as account0_, user0_.examin as exam
in0_, user0_.isCityer as isCityer0_, user0_.password as password0_, user0_.name as name0_, user0_.gender as gender0_, user0_.birthday as birthday0_, user0_.city as city0_, user0_.m
obilephone as mobilep13_0_, user0_.identify as identify0_, user0_.email as email0_, user0_.address as address0_, user0_.college as college0_, user0_.remarks as remarks0_, user0_.up
datetime as updatetime0_, user0_.tips as tips0_, user0_.trains as trains0_ from test.t_user user0_ where user0_.gender='m' and (user0_.id in (select . from test.t_field field1_, r_
user_field users2_, test.t_user user3_ where field1_.id=users2_.field_id and users2_.user_id=user3_.id and (field1_.id like '520%')))
16:56:29,171 WARN JDBCExceptionReporter:100 - SQL Error: 1064, SQLState: 42000
16:56:29,171 ERROR JDBCExceptionReporter:101 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
'from test.t_field field1_, r_user_field users2_, test.t_user user3_ where field1' at line 1
newflypig 2009-06-21
  • 打赏
  • 举报
回复
不好意思啊,楼上的,你的HQL还是不成!
默然说话 2009-06-21
  • 打赏
  • 举报
回复
给点错误信息呀。
默然说话 2009-06-21
  • 打赏
  • 举报
回复
select u from User u,Field f where u.gender='m' and f in (select f2 from Field f2 where f2.id like '520%')

不知道行不行,谢谢。
newflypig 2009-06-21
  • 打赏
  • 举报
回复
还是没人,“噗通一声”,我跪求了。。。
这个问题如此普遍啊!
newflypig 2009-06-21
  • 打赏
  • 举报
回复
改成
from User u where u.gender='m' and u in elements(select f.users from Field f where f.id like '520%')
还不行,快要跪求了。。。
内容概要:LTK8319是一款单通道H桥有刷直流电机驱动器,工作电压范围为2.5V至12V,支持最高3.9A的峰值电流和2.5A的平均电流驱动能力,适用于小家电、玩具、电子锁、机器人等小型电动设备。该芯片通过两个逻辑输入(INA和INB)控制电机的正转、反转、停止与刹车,并支持PWM调速控制。集成欠压锁定(UVLO)、过温保护(TSD)及自动故障恢复功能,确保系统安全可靠运行。当INA和INB持续为低电平时,芯片进入低功耗休眠模式,显著降低静态功耗。采用ESOP-8封装,符合环保无铅标准。; 适合人群:电子工程师、嵌入式系统开发者、电机控制技术人员,以及从事小型机电产品研发的设计人员;具备基本电路知识和电机控制经验者更佳。; 使用场景及目标:①用于驱动小型有刷直流电机或步进电机的一个绕组,实现精确的方向与速度控制;②适用于电池供电设备中对功耗敏感的应用,利用休眠模式延长续航时间;③在电机启停频繁、负载波动大的场合,发挥其电流控制与保护机制优势,提升系统稳定性。; 阅读建议:此文档提供了详细的电气特性、功能逻辑表、保护机制与时序参数,建议结合典型应用电路进行硬件设计,并重点关注电源去耦电容选型、散热布局及PWM频率设置(不超过100kHz),以确保系统可靠运行。
内容概要:本文研究了一种基于遗传算法(GA)与粒子群优化算法(PSO)融合的无人机三维路径规划方法,旨在解决复杂环境中无人机避障与路径优化的问题。通过构建三维空间环境模型,提出一种结合GA全局搜索能力强与PSO收敛速度快优势的混合优化策略,并利用Matlab平台完成算法仿真与路径可视化。研究不仅实现了无人机在存在多个障碍物场景下的安全、高效飞行路径规划,还对GA与PSO两种算法在路径长度、计算耗时、收敛稳定性等方面进行了对比分析,评估其性能差异,为实际应用中算法选型提供依据。; 适合人群:具备一定算法设计基础和Matlab编程能力的科研人员、自动化与人工智能方向的研究生,以及从事无人机导航、智能控制等相关领域的工程技术人员。; 使用场景及目标:①应用于城市密集建筑区、山地森林等复杂地形中的无人机自主巡检与应急救援任务;②为智能交通、地理测绘、灾害监测等需要自主路径决策的无人系统提供算法支持与仿真验证;③通过对比不同智能优化算法的表现,辅助研究人员在特定应用场景下选择最优路径规划方案。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实验,调整种群规模、迭代次数、障碍物分布等参数,深入理解算法运行机制与性能表现,并可进一步拓展至动态环境更新、多无人机协同避障等更复杂的研究方向。

67,535

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧