如何在没有@query的情况下使用spring数据jdbc运行自定义sql?

hc8w905p  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(330)

有没有可能运行一些通过第三方工具(如jooq)生成的定制sql查询,并且仍然受益于spring数据jdbcMap特性,如。 @Column 注解?我不想用 @Query 注解。

class Model { @Id private Long id; @Column("column") private String prop; }

class MyRepo {
  public Model runQuery() {
    val queryString = lib.generateSQL()
    // run query as if it has been generated by Spring Data JDBC and map
    // results to Model automatically
  }
}
t5fffqht

t5fffqht1#

或许jdbctemplate可以解决您的问题?具体来说,其中一个queryforobject()方法可能会引起您的兴趣,因为您正在请求单个对象:

class MyRepo {
    private JdbcTemplate jdbcTemplate;

    @Autowired
    MyRepo(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }        

    public Model runQuery() {
        val query = lib.generateQuery();
        return jdbcTemplate.queryForObject(query, Model.class);
    }
}

更多信息和其他用例可以在spring指南中找到,该指南使用jdbc和spring访问关系数据

相关问题