如何解决在 Spring Boot 中从只有客户拥有的数据库中获取数据的正确方法
我正在 Spring Boot 中编写我的第一个应用程序,很抱歉,如果这是一个愚蠢的问题。 我在数据库中有一个“客户”表和一个将 customer_id 作为外键的“建筑物”表,所以我知道哪些客户拥有哪些建筑物。 正如我现在所理解的,在存储库文件夹中应该是 BuildingRepository.java,它处理与数据库构建表的通信。我在那里写了“getAll()”方法,但它返回所有建筑物的列表,而不管customer_id。然后我有 BuildingServiceImpl.java,它是 REST API 端点下面的“层”,它也有 getAll() 方法来返回所有建筑物。我应该在存储库中将 customer_id 指定为参数,还是应该在 serviceImpl 中指定它以严格保持存储库的基本数据库交互,以便仅返回客户拥有的建筑物?
这是 BuildingRepository.java 中的 getAll() 方法
public List<Building> getAll() {
final String sql = "select * from building";
return jdbcTemplate.query(sql,buildingRowMapper);
}
这里是 BuildingServiceImpl.java 中的 getAll() 方法
public List<Building> getAll() {
return buildingRepository.getAll();
}
解决方法
尝试以下查询之一“select * from building b left join customer c on b.customer_id=c.customer_id” 或“select * from building,customer c where b.customer_id =c.customer_id".
如果您需要返回特定列,您始终可以将返回类型用作 List 和服务层,您需要将它们类型转换回相应的数据类型。如果您需要该查询,请告诉我,我会为您提供相同的信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。