java - 需要帮助将 MYSQL DB Sql 查询转换为 Jpql 查询
问题描述
我有 3 个实体 - 用户组、用户、用户组成员资格。usergroupmemberships 对用户和用户组都是 1 比 1。我试图用他的 id 获取用户组
以下查询在我的数据库中有效:
SELECT *
FROM UserGroup g
JOIN UserGroupMembership ON
UserGroupMembership.usergroup_id = g.id
WHERE UserGroupMembership.user_id = 868
野蝇:
与使用来自我的 entitymanager 的查询的 Java REST POST 相同,但没有空指针异常
SELECT g
FROM UserGroup g
JOIN UserGroupMembership
ON UserGroupMembership.usergroup = g.id
WHERE UserGroupMembership.user = :id
我如何正确地写这个?
尝试了不同的方法来编写查询并尝试在 wildfly 和 java ee 上编写 user_id im
public List<UserGroup> findUserGroupbyUser(long id) {
return em.createQuery("SELECT g FROM UserGroup g JOIN
UserGroupMembership ON UserGroupMembership.usergroup = g WHERE
UserGroupMembership.user.id = :id", UserGroup.class).setParameter("id",
id).getResultList();
}
@Entity
public class UserGroupMembership {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToOne(cascade = CascadeType.ALL)
private UserGroup usergroup;
@OneToOne(cascade = CascadeType.ALL)
private User user;
预期结果是 1 个条目
解决方案
推荐阅读
- sql - 自动从表中删除数据?
- android - 未生成 Sqldelight 数据库架构
- typescript - 我可以告诉 TypeScript 一个函数只有在输入为 null 时才会输出 null 吗?
- angular - 在 Angular 中使用可见性属性而不是 display 有条件地显示元素
- amazon-web-services - 尝试在 Amazon EFS 上创建文件夹时权限被拒绝
- node.js - 带有 puppeteer 的谷歌云功能不起作用,即使它在 firebase 函数模拟器中工作
- abap - 使桌子可定制/可移动?
- java - 无法获得带有所选文件名称的完整真实路径
- flutter - 如何在脚手架中有多种背景颜色?
- javascript - 从 queue() 到 Promise