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

Spring Data JPA获取没有实体表示的数据

计燕七
2023-03-14

我正试图找到在ORM上映射我的数据的最佳方法。我有一个从MySQL数据库中获取数据的查询

SELECT d.ID AS Id,
    equipment.EQUIP_ID,
    equipment.EQUIP_REFERENCE
FROM
    tbl_devices d
        INNER JOIN
   tbl_equipment equipment ON equipment.EQUIP_ID = d.DEV_ID
 

用spring boot和spring的数据获得这些数据的最优方法是什么??

我应该使用@query注释并执行它还是以某种方式为Equipment and Devices表创建实体,然后使用JPQL/HQL将表连接到查询中,但是我应该如何映射结果?

提前道谢。

共有1个答案

齐学文
2023-03-14

您可以使用jdbctemplate(从org.springframework.jdbc.core.jdbctemplate)来运行上面编写的SQL语句。之后,您可以创建一个pojo来通过BeanPropertyRowMapper将结果映射到pojo中。例如:

final String sql = "SELECT d.ID AS Id, equipment.EQUIP_ID, equipment.EQUIP_REFERENCE FROM tbl_devices d INNER JOIN tbl_equipment equipment ON equipment.EQUIP_ID = d.DEV_ID";
YourPojo result = jdbcTemplate.query(
    sql,
    new BeanPropertyRowMapper<>(YourPojo.class)
); 

Pojo类可能如下所示:

@Data
public class YourPojo {
    private Long id;
    private Long equipId;
    private Your_type equip_reference_name;
}
 类似资料:
  • 问题内容: 我想创建一个类,该类可以映射到使用JPA本机查询从数据库中提取的结果。有没有办法将没有基础表的实体映射到结果?我提到这个链接,使得它的hibernate。可以使用JPA代替吗? 这是我要为其映射结果的班级。 问题答案: JPA 2.1规范定义了将结果从本机查询返回到非实体类的方法 您应该检出标题 3.10.16.2返回非托管实例, 尤其是 3.10.16.2.2构造函数结果 使用 Sq

  • 我想创建一个可以映射到使用JPA原生查询从数据库提取的结果的类。有没有办法将没有基础表的实体映射到结果?我提到了这个允许它Hibernate的链接。这可以用JPA来代替吗? 这是我想要映射结果的类。

  • 我有用户表,列id, mname, firstname, lastname, age(5列)使用Spring data jpa我只需要获取id, firstname, age(只有3列) 实用性低于user.java UserRepository.java 在科尔索勒中收到以下错误: org.springframework.core.convert.ConverterNotFoundExcepti

  • 我正在使用100个实体(使用JHipster)设置一个新的Spring Boot API,我的问题是:鉴于我有一组存储库层方法,我希望我的所有存储库都能够调用这些方法。 我已经尝试制作所有接口来扩展('RepositoryQuery'是我默认的自定义接口名称后缀),然后使用特定于实体的类。请注意,所有的类扩展了一个泛型实现类,名为。 请注意,给定正则表达式中的“.*”代表我的持久实体集中的任何实体

  • 问题内容: 我有一个非常丑陋的旧数据库系统,需要与之集成。本质上,我在系统上做一些只读报告,并且我不想建立代表我正在处理的每个表的上千个实体。相反,我只想为我生成的每种报告类型定义一个实体(本质上是来自不同表的一堆列的并集),然后让讨厌的hibernate映射(许多已加入,很多已合并) sql查询到此类实体的列表。 问题是:我可以创建一个没有基础表的实体,并使用sql语句填充所述实体的列表吗? 谢