如何使用jpa中的两个表获取记录,两个表之间没有Map。这是一个简单的mysql查询,两个表中只有一列是公共的,即, client_id 作为一个 destination ``` select nc.* from Table1 n, Table2 nc where n.destination = nc.client_id and n.status = 'Created';
// Autowiring JdbcTemplate so we can send queries to the database
@Autowired
JdbcTemplate jdbcTemplate;
public List<Map<String, Object>> mock_method() {
// Your query
String query = " select nc.* from Table1 n, Table2 nc
where n.destination = nc.client_id and n.status = 'Created';";
return jdbcTemplate.queryForList(query);
}
2条答案
按热度按时间efzxgjgh1#
尝试使用@query注解编写本机sql查询。您可以在扩展jparepository的接口中编写它
这样地:
7vhp5slm2#
与直接查询数据库相比,jpa存储库非常有限(至少从我使用它时看到的情况来看)
您可以使用jdbctemplate直接从controller/where-is发送查询
此方法将返回map<string,object>的列表,其中string是列的名称,object是该列的值(这样它可以检索任何类型的数据,然后您可以将其解析为所需的类型)
如果没有与查询匹配的行,它将不返回任何内容,因此不需要进行错误处理。