hibernate多条数据删除;临时表别名

你慧快乐 2015-10-22 05:17:23
使用delete from User as u where u.userId in (1,2,3)删除多条数据,生成了sql如下:
insert
into
HT_user
select
user0_.userId as userId
from
studentManager.user user0_
left outer join
users_roles user0_1_
on user0_.userId=user0_1_.userId
where
userId in (
1,2,3
)
报错:Column 'userId' in where clause is ambiguous
应该就是指where 条件中的userId不明确,但是为什么没有加别名呢,普通的查询更新,不管是单表操作还是多表关联操作都是加别名的,为什么这个就没有呢,还是问题就不在这里,或是有能实现一条sql就能删除多个记录的方法也可提出,我不想遍历逐条删除,希望能给点指点。
...全文
273 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
AlexMoonshadow 2015-10-26
  • 打赏
  • 举报
回复
引用 2 楼 tianxiang_1990 的回复:
[quote=引用 1 楼 AlexMoonshadow 的回复:] hql粘出来换sql执行下看看有什么问题。
你是说直接执行打印出的sql吗,肯定会报同样的错误啊,这个是mysql犯规的错误,又不是hibernate,直接在客户端执行也是这个问题,但是加上别名就没问题了[/quote] 那就没办法了,sql调通了再放上去吧,这种问题经常发生的。
你慧快乐 2015-10-23
  • 打赏
  • 举报
回复
引用 1 楼 AlexMoonshadow 的回复:
hql粘出来换sql执行下看看有什么问题。
你是说直接执行打印出的sql吗,肯定会报同样的错误啊,这个是mysql犯规的错误,又不是hibernate,直接在客户端执行也是这个问题,但是加上别名就没问题了
AlexMoonshadow 2015-10-22
  • 打赏
  • 举报
回复
hql粘出来换sql执行下看看有什么问题。
代码下载地址: https://pan.quark.cn/s/a4b39357ea24 ### HSMS/SEMI通讯E37说明书中文关键知识点 #### 一、HSMS概述 - **HSMS**(High-Speed SECS Message Service)是一种专为半导体工厂内部计算机之间进行高速消息传输而构建的通信标准。该标准旨在逐步取代原有的SEMIE4(SECS-I)和SEMIE13(SECS Message Service),特别是在需要高速数据交换或简单的点对点拓扑结构无法满足实际需求的情况下。 - HSMS的核心宗旨在于提供一种机制,使来自不同制造商的设备能够达成无缝对接和互操作状态,即便这些设备在设计理念和通信机制上存在显著差异。 - HSMS不仅适用于TCP/IP优先于OSI模型的应用环境,同时也能作为SEMIE4和SEMIE13的有效替代方案。 #### 二、HSMS的应用范围 - HSMS主要部署于半导体制造业中的计算机系统之间进行消息交换的场景,如自动化生产线、设备监控系统等。 - 该标准界定了通信接口,使得半导体工厂内的各类设备能够实现高效且可靠的数据传输。 #### 三、HSMS与其他标准的关系 - **SEMIE4 (SECS-I)**:规定了消息传输的基本规则和格式。 - **SEMIE5 (SECS-II)**:明确了消息的具体内容和结构。 - **IETF Documents**: - RFC791 - Internet协议 - RFC792 - Internet控制消息协议 - RFC793 - 传输控制协议 - RFC1120 - Internet主机通信层的要求 - RFC1340 - 指定号码 - **POSIX D...

81,111

社区成员

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

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