[英]How can I run custom SQL with Spring Data JDBC without @Query?
Is there a possibility to run some custom SQL query generated via 3rd party tools like eg jOOQ and still benefit from Spring Data JDBC mapping features ie @Column
annotations?是否有可能运行一些通过 3rd 方工具(例如 jOOQ)生成的自定义 SQL 查询,并且仍然受益于 Spring Data JDBC 映射功能,即
@Column
注释? I don't want to use @Query
annotation.我不想使用
@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
}
}
Perhaps JdbcTemplate can solve your problem?也许JdbcTemplate可以解决您的问题? Specifically, one of the queryForObject() methods may be of interest since your are requesting a single object:
具体来说, 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);
}
}
More information and other use cases can be found in the Spring Guide Accessing Relational Data using JDBC with Spring更多信息和其他用例可以在 Spring Guide Accessing Relational Data using JDBC with Spring 中找到
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.