如何解决如何使用联接在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 举报,一经查实,本站将立刻删除。