微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用联接在CriteriaUpdate中编写更新查询?

如何解决如何使用联接在CriteriaUpdate中编写更新查询?

我试图使用联接编写有关CriteriaUpdate的代码。 但是,在CriteriaUpdate中,联接不起作用。 然后我尝试使用下面的子查询..,

CriteriaBuilder userBuilder = deviceSession.getCriteriaBuilder();
                    CriteriaUpdate<Switch> deviceUpdate = userBuilder.createCriteriaUpdate(Switch.class);
                    Root<Switch> deviceUpdateRoot = deviceUpdate.from(Switch.class);
                    
                    Subquery<Switch> deviceSubquery = deviceUpdate.subquery(Switch.class);
                    Root<Switch> roomroot = deviceSubquery.from(Switch.class);
                    Join<Switch,Rooms> join = roomroot.join("room",JoinType.LEFT);
                    
                    deviceUpdate.set(deviceUpdateRoot.get("displayName"),"SSS");
                    deviceUpdate.set(deviceUpdateRoot.get("device"),"device");
                    deviceUpdate.set(deviceUpdateRoot.get("operation"),"operation");
                    ***deviceUpdate.set(join.get("roomId"),device.getRoomId());***
                    deviceUpdate.where(userBuilder.equal(deviceUpdateRoot.get("deviceName"),device.getDeviceName()));
                    int returnValue = deviceSession.createquery(deviceUpdate).executeUpdate();

但是我遇到类似 org.hibernate.hql.internal.ast.InvalidpathException的错误:无效路径:“ generatedalias1.roomId” 您能从这个问题中帮忙吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。