hql左联查询报错: Path expected for join!

day_moon 2016-02-24 10:15:13
hql语句如下:
Query query = session
.createQuery("select TbBook.author,TbBook.title,TbBooktypeson.typeName from TbBooktypeson left join TbBook where TbBooktypeson.bookId=TbBook.bookId and TbBooktypeson.bookId="+id);
不知道怎么出来了?有可以不用添加外键关联吗?
...全文
1874 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgjavacai 2017-03-07
  • 打赏
  • 举报
回复
10楼正解,实体之间对应包含关系,hbm之间一对多关系
xiedacon 2016-02-24
  • 打赏
  • 举报
回复
引用 4 楼 day_moon的回复:
把语句改成如下: Query query = session .createQuery("from TbBooktypeson left join TbBook where TbBooktypeson.bookId="+id); 报错: Path expected for join!
hibernate文档里面是用的left join with不过那个只有一个条件
day_moon 2016-02-24
  • 打赏
  • 举报
回复
把语句改成如下: Query query = session .createQuery("from TbBooktypeson left join TbBook where TbBooktypeson.bookId="+id); 报错: Path expected for join!
day_moon 2016-02-24
  • 打赏
  • 举报
回复
都试过了,不行啊。我现在添加外键,重新生成hbm.xml了。 Query query = session .createQuery("from TbBooktypeson, TbBook where TbBooktypeson.bookId="+id); 运行结果: Invalid path: 'null.bookId' 跪求大神解答。
FlameWangNew 2016-02-24
  • 打赏
  • 举报
回复
把where改成on试试
xiedacon 2016-02-24
  • 打赏
  • 举报
回复
把where改成with试试
qq_34016767 2016-02-24
  • 打赏
  • 举报
回复
嗯。
实体类如下:

不知道怎么写hql通过语句,查询一下内容。
TbBook.author,TbBook.title,TbBooktypeson.typeName
xiaohuashenshou 2016-02-24
  • 打赏
  • 举报
回复
hql没有on关键字,另外hibernate如果要使用左链接,必须要建立一对多或者多对一又或者1对1的关联关系才可以,如student和Teacher两个类,Student类里有一个Teacher属性,这样才可以左链接
baidu_31006959 2016-02-24
  • 打赏
  • 举报
回复
引用 8 楼 day_moon 的回复:
7楼,hql没有on的...
额,那就直接用sql 吧。
day_moon 2016-02-24
  • 打赏
  • 举报
回复
7楼,hql没有on的...
baidu_31006959 2016-02-24
  • 打赏
  • 举报
回复
("from TbBooktypeson left join TbBook on TbBooktypeson.bookId=TbBook.bookId where TbBooktypeson.bookId="+id) 试试
我爱娃哈哈 2016-02-24
  • 打赏
  • 举报
回复
left join on 这是语法撒

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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