在 Spring 引导中从只有客户拥有的数据库中获取数据的正确方法

Correct way to get data from database that only the customer owns in Spring Boot

我正在 Spring Boot 中编写我的第一个应用程序,如果这是一个愚蠢的问题,我深表歉意。 我在数据库中有一个“客户”table 和一个以 customer_id 作为外键的“建筑物”table,所以我知道哪些客户拥有哪些建筑物。 据我现在的理解,存储库文件夹中应该是 BuildingRepository.java,它处理与数据库构建 table 的通信。我在那里写了“getAll()”方法,但它 return 是所有建筑物的列表,而不考虑 customer_id。然后我有 BuildingServiceImpl.java 这是 REST API 端点下面的“层”,它也有 getAll() 方法到 return 所有建筑物。我应该将 customer_id 指定为存储库中的参数,还是应该在 serviceImpl 中指定它以严格保持存储库用于基本数据库交互,以便 return 只有客户拥有的建筑物?

这是 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 * 从建筑物 b 左加入客户 c 在 b.customer_id=c.customer_id""select * 来自建筑,客户 c 其中 b.customer_id=c.customer_id".

如果您需要 return 特定列,您始终可以使用 return 类型作为 List 和服务层需要将它们转换回各自的数据类型。如果您需要该查询,请告诉我,我会为您提供相同的信息。