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

Spring JPA。如何从@query(nativeQuery=true)映射到POJO[duplicate]

农星华
2023-03-14

有疑问,顺其自然

select 1 "colName"
public interface MyAwesomeSuperInterface extends CrudRepository {
    @Query(value = "select 1 \"colName\"", nativeQuery = true)
    List<POJO> something();
}

下面是我想我会得到的常见建议:

  1. 不,我不想将其更改为JSQL并执行“新POJO”。
  2. 为什么?因为我有一个复杂的sql查询,它不能反射到JSQL。
  3. 不,我不会提出查询。我只想知道如何使用Spring Data将上面的示例映射到POJO。谢谢

共有1个答案

谭浩皛
2023-03-14

您可以将DTO投影与本机查询一起使用:

// Projection Interface
public interface UserProjection {
    String getName();
    String getEmail();
    Integer getId();
    String getComment();
}

public interface UserRepository extends CrudRepository<User, Integer> {
    @Query(value = "select  u.name, u.email, c.comment from User u join 
                    Comment c on u.id = c.user_id where u.id in :ids", nativeQuery = true)
        List<UserProjection> getUserInterface(List<Integer> ids);
    }

这是我最近尝试使用DTO预测的一个例子。这将简单地将本机查询的结果映射到UserProjection。有关更多信息,请阅读:Spring Data JPA Projection对本机查询的支持

 类似资料:
  • 问题内容: 我正在尝试使用@SqlResultSetMapping和@ConstructorResult将本机查询的结果映射到POJO。这是我的代码: 然后在我的DAO中: 我已经读到JPA 2.1仅支持此功能,但这就是我正在使用的功能。这是我的依赖项: 我发现了一些资源,其中包括:jpa2.1中的@ConstructorResult映射。但是我仍然没有运气。 我想念什么?为什么找不到SqlRes

  • 我正在尝试使用@SQLResultSetMapping和@ConstructorResult将本机查询的结果映射到POJO。下面是我的代码: 我找到了一些参考资料,其中包括JPA2.1中的@ConstructorResult映射。但我还是没有运气。 我错过了什么?为什么找不到SqlResultSetMapping?

  • 你好,我有一个查询,我想把结果变成对象列表,而不是实体。但结果实际上是一个对象,我应该把它转移到我的对象。有没有办法直接映射到我的自定义对象?

  • 我想我必须从POJO注册一个自定义转换器来记录。有人知道怎么做吗?

  • 我和jackson一起绘制地图,我有点迷茫。我的Json具有以下结构 我确实找到了很多处理数组的教程,但我在第一个标记“d”时就已经失败了。而且根本不需要所有的“_元数据”标记。 我创建了一个包含lastName等属性和一个集合附件的pojo。但我的代码在标记“d”或“_元数据”时总是失败 还有杰克逊的读者 任何提示都将不胜感激。 问候马蒂亚斯

  • 问题内容: 这个问题一定是以前问过的,但是我找不到。 我正在使用第3方库来检索JSON格式的数据。图书馆将数据作为数据提供给我。我想将此映射到POJO(普通Java对象)以简化访问/代码。 对于映射,我目前以这种方式使用Jackson图书馆中的: 据我所知,上述代码可以得到显着优化,因为当前已经解析的中的数据将再次通过方法馈入序列化- 反序列化链,然后再馈入。 我想避免这两次转换(和解析)。有没有