首页 文章

来自多个表的Spring数据jpa

提问于
浏览
0

我正在使用spring数据jpa . 我在两张 table 上有一个内部联接 . 这是我的疑问 .

SELECT A.NAME, A.CARD_NUMBER, A.ADDRESS, A.EMAIL FROM USER_INFO ABC INNER JOIN USR_DETAIL DEF ON (ABC.ID = DEF.ID) WHERE ABC.ID = '123456';

这里的两张 table 没有任何关系 . 因此,列名称上的一对一或多对一或多对多没有意义 . 我可以定义没有关系的实体吗?我们在这两个表上进行内连接的原因很简单,因为对它们进行连接将是一个昂贵的查询 .

1 回答

  • 0

    您可以定义两个实体而不需要任何关系,然后您可以在read方法中的 @Query(..) 注释中检索指定 nativeQuery=true 的数据 .

    @Query(value = "SELECT ABC.NAME, ABC.CARD_NUMBER, ABC.ADDRESS, ABC.EMAIL " +
                   "FROM USER_INFO ABC " +
                   "INNER JOIN USR_DETAIL DEF ON (ABC.ID = DEF.ID) " +
                   "WHERE ABC.ID = :id", nativeQuery = true)
    UserInfoDetails retrieveUserInfoAndDetailById(@Param("id") String id);
    

    附注:

    • 在查询的投影中,我将 A 中的别名更正为 ABC ,因为查询未正确写入 . 您可以根据需要随意编辑投影 .

    • 作为一个返回类型,我写了一个 UserInfoDetails 类,假设它将返回类似的东西 . 随意根据您的需求进行更改 .

相关问题