繁体   English   中英

Spring Data JPA + openjpa:是否可以在OR-Hierarchy中联接表?

[英]Spring Data JPA + openjpa: Is it possible to join a table not in OR-Hierarchy?

因此,以下用例:

我有两个表和相应的实体,我们称它们为表A(左侧)和表B(右侧)。 两个表都有一个“大小”列,但是在我的OR模型中,表a没有引用表b的对象。 现在,我想要实现的内容(通过Spring Data JPA @ Query-Annotation / JPQL,不使用本机SQL)类似于以下查询(有点简化):

@Query("select a from TheLeftTable a join TheRightTable b" +
       "where b.size = a.size ")
Page<TheLeftTable> findAllAvailableEntries(Pageable p);

但是在尝试启动雄猫时出现以下异常原因:

...由以下原因引起:org.apache.openjpa.persistence.ArgumentException:在字符48处遇到“加入TheRightTable b”,但预期:[“。”,“ FETCH”,“ INNER”,“ JOIN”,“ LEFT”, ]

所以我的问题是:是否可以仅使用JPQL / JPA创建这样的查询? 请记住:在我的OR模型中,TableA没有表B中的对象。我的简化的Entitiy-Property看起来像这样:

@Column(name = "size")
String size;

如果不可能,那么任何其他想法都将是很棒的。 (除了将表A的实体更改为具有实体B的对象,这是不可能的)

没问题,可以这样做:

SELECT a FROM TheLeftTable a, TheRightTable b WHERE b.size = a.size

这称为交叉连接,但是如果索引了列size ,则不会发现任何性能问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM