在 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 和服务层需要将它们转换回各自的数据类型。如果您需要该查询,请告诉我,我会为您提供相同的信息。
我正在 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 和服务层需要将它们转换回各自的数据类型。如果您需要该查询,请告诉我,我会为您提供相同的信息。