我正在尝试通过连接来获取记录。我是 spring jparepository 的新手。 我知道每个实体(表)都有单独的存储库,当我实现时,我需要定义主键的实体和数据类型。
有人可以建议我如何通过连接两个表来获取记录吗?
我有两个存储库,如下:
public interface AEntityRepository extends JpaRepository<AEntity, Integer>
public interface BEntityRepository extends JpaRepository<BEntity, Integer>
我想加入以上两个实体(AEntity,BEntity)。 我知道我可以使用如下所示的自定义查询:
@Query("SELECT ****** FROM AEntity ae")
AEntity findCustomrRecords();
但是我可以用 join 编写相同类型的查询(连接查询)。 我是否需要有一个单独的存储库来实现其他类。
任何人都可以帮忙吗?
我正在使用mysql。
最佳答案
I understand that there is separate repository for each entity(table)
这是一个非常常见的误解。您不希望每个实体都有一个存储库,而是每个聚合根都有一个存储库。请参阅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);
您可以使用任何 join syntax JPQL offers在查询中。
关于spring - 在 spring jparepository 中加入多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43273118/