Luc*_*uke 14 java spring jdbc spring-jdbc
我正在使用Spring JDBC,我对如何处理多个一对多关系(或多对多关系)有点不确定.在这种情况下,我将一个存储库注入我的resultsetextractors之一,以便我可以检索其关联.这是这样做的吗?这不好吗?还有其他更好的方法吗?
注意:我遗漏了注册库
public class SomeResultSetExtractor implements ResultSetExtractor {
public Object extractData(ResultSet rs) throws SQLException, DataAccessException {
List result = new LinkedList();
while (rs.next()) {
SomeObject object = new SomeObject(rs.getString(1), rs.getLong(2));
result.add(object);
List<AnotherObject> otherObjects = anotherRepository.findAllById(object.getId);
object.setOtherObjects(otherObjects);
// and so on
}
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
Okey所以在阅读Dmytro Polivenok之后回答我改为RowMapper界面,而我目前正在使用其他存储库来填充我在我的示例中显示的所有关联.这是一个很好的方式吗?
我认为Spring JDBC和SQL查询的一个好习惯通常是为每个实体使用一个查询.
例如假设这个模型:
PaymentOption(customerId,cardnumber,cardtype,...)
客户1 ---*地址
我将构建3个查询,3个Daos,3个ResultSetExtractors/RowcallbackHandlers:
如果你想在1个查询中烘焙它,你将需要构建一些逻辑来恢复cartasian产品.
对于许多人:
我可能会建立:
像这样你可以重用ProductDao.readProducts
| 归档时间: |
|
| 查看次数: |
8271 次 |
| 最近记录: |