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

在Spring jparepository中加入多个表

嵇永望
2023-03-14

我正在尝试通过加入来获取记录。我对Spring是个新手。我知道每个实体(表)都有单独的存储库,在实现时需要定义主键的实体和数据类型。

谁能建议我如何通过连接两个表来获取记录。

我有两个回购如下:

public interface AEntityRepository extends JpaRepository<AEntity, Integer>

public interface BEntityRepository extends JpaRepository<BEntity, Integer>

我想加入以上两个实体(AEntity,BEntity)。我知道我可以使用以下内容进行自定义查询:

@Query("SELECT ****** FROM AEntity ae")
AEntity findCustomrRecords();

但是,我可以使用连接编写相同类型的查询(连接查询)。我需要有一个单独的存储库来实现其他一些类吗?

谁能帮忙吗。

我正在使用mysql

共有1个答案

尉迟俊能
2023-03-14

我知道每个实体(表)都有单独的存储库

这是一个非常常见的误解。您不希望每个实体都有一个存储库,而是每个聚合根。请参阅http://static.olivergierke.de/lectures/ddd-and-spring/

关于您手头的特定问题:在您的存储库接口中创建一个自定义方法并使用JPQL对其进行注释应该就可以了。所以你会得到这样的东西:

@Query("select a from BEntity b join b.a a where b.foo = :foo")
AEntity getAllFooishAs(String foo);

您可以在查询中使用JPQL提供的任何连接语法。

 类似资料:
  • 我正在实施一个项目,其中MySql数据被导入到hdfs使用sqoop。它有将近30张桌子。我通过推断模式和注册为临时表来读取每个表作为数据帧。我做这件事有几个问题...1.假设df1到df10的表需要实现几个连接。在MySQL中,查询将是而不是使用是否有其他连接所有数据帧有效地基于条件...

  • 我有4个rdd类型的RDD:((int,int,int),values),我的rdds是 如何加入RDD,比如rdd1加入“A”上的rdd2;rdd1加入“B”上的rdd2;rdd1加入“C”上的rdd3 那么在Scala中的输出是? 例 输出应该是

  • 我有对象主位置和主国家/地区 MasterLocation.java 主位置存储库.java 为什么对象MasterCountries仍然加载在findByLocationNameLikeIgnoreCase上?如何在此存储库中禁用获取主国家/地区? 谢谢

  • rank ▲ ✰ vote url 3 1346 1485 2648 url Python中如何在一个函数中加入多个装饰器? 怎么做才能让一个函数同时用两个装饰器,像下面这样: @makebold @makeitalic def say(): return "Hello" 我希望得到 <b><i>Hello</i></b> 我只是想知道装饰器怎么工作的! 去看看文档,答在下面: def

  • 本文向大家介绍如何在Linux上加入多个分区,包括了如何在Linux上加入多个分区的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将使用2个20 GB的驱动器在Linux上创建一个单一分区,以形成40 GB的单个安装点,以便我们可以将数据存储在一个具有更大空间的地方。在这里,我们使用一个名为“ mhddfs ”的软件包,该软件包是Linux的驱动程序,它将多个安装点组合到一个虚拟磁盘中。这

  • 我有一个云Firestore DB,其结构如下: null null 有人能想出一个优雅的解决这个问题的办法吗?