当前位置: 首页 > 知识库问答 >
问题:

使用JPQL左联接元素集合

范哲
2023-03-14

假设我有这些类,请注意实体无论如何都不相关。

@Entity
class Laptop {
 @Id
 String userId;
 @Column
 String name;
 ...
}

@Entity
class Foo {
 ...

 @Column
 @ElementCollection
 List<String> idsPointingToAnEntity;

 ...
}

假定我有一个foo类,它的属性为IDSPointingToanEntity,我可以在其中存储一个笔记本ID列表或任何字符串ID。假设foo有idsPointingToanEntity=[1,2,3],那么这个[1,2,3]在数据库中有一个等效的膝上型计算机条目。

注意:IDSPointingToanEntity也可以是另一个实体,使列表 不是一个选项

共有1个答案

邢良才
2023-03-14

如果您使用的是JPA2.1或更高版本,则在JPQL中对不相关的实体使用join on。首先加入IDs表,如下所示:

select f from Foo f 
join f.idsPointingToAnEntity id 
join Laptop l ON id=l.id
join AnotherEntity a ON id=a.id
 类似资料:
  • 我正在尝试JPA2.1(eclipselink)中的“treat as”函数,但遇到了一个来自JPA的错误: 异常说明:ReportQuery结果大小不匹配。应为[263],但已检索到[197] 下面是我的JPQL查询(我更改了一些部分,以便更明确): 我们可以看到account和ad_account之间的左外部连接。此外,ad_account表不存在于select子句中。(idApp字段是主键的

  • 问题内容: 假设我们有下表t1和t2: 我们希望找到以下结果: 这基本上是右连接与左连接的并集。以下代码有效,但感觉很笨拙: 有没有更好的方法来实现这一目标? 问题答案:

  • 问题内容: 我对SQL和JPQL的了解不是很好,我一直在尝试创建以下sql语句的JPQL查询: 编辑:糟糕,我忘记了按用户ID将搜索添加到查询中。我想获取用户所属的所有组。 但是我只是语法不正确。任何帮助将不胜感激。 相关代码段: Group.java User.java 问题答案: 使用JPQL,它将是: 这里是您的EntityManager,是要为其加载组列表的User类的实例。如果只有用户标

  • 问题内容: 我需要模拟左联接效果而不使用“左联接”键。 我有两个表,A和B,都带有和列。我想在两个表中都选择所有dbid,其中A中的名称等于B中的名称。 我使用它来进行同步,因此B开头是空的(所以我将使用A的id和B的id为null的对)。稍后,我将混合使用值-value和值-null的夫妇。 通常是: 问题是我无法使用,并且想知道是否/如何做同样的事情。 问题答案: 您可以使用这种方法,但是必须

  • 问题内容: 我有两个实体:和。我正在使用Hibernate 3.6。 如何使用休眠标准实现这一目标,最重要的是,我必须将其用于分页。 而“我的道”如下所示以显示jqgrid中的“问题”列表 公共列表showHelpDeskIssues(DetachedCriteria dc,int from,int size){ 对于简短的解释,请参考此问题,如何使用struts2-jqgrid插件在jqgrid

  • 我有两个问题。两者都很好用: 第二个查询: 联合本: 工作正常,但我想添加左联接: DoSend工作...#1222-使用的SELECT语句具有不同的列数 你能帮我把这件事办好吗?