首页 > 解决方案 > 需要帮助将 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 个条目

标签: javamysqlsqlwildflyjpql

解决方案


推荐阅读