우리가 사용하는 js-data-sql
DSSqlAdapter 우리의 백엔드 nodejs 서비스를. 모델 정의에는 hasOne
다음과 같이 정의 된 관계가 있습니다.
module.exports = {
name: 'covariance_predictions',
idAttribute: 'id',
relations: {
belongsTo: {
assets: {
localKey: 'asset_1_id',
localField: 'Covariance_Predictions'
}
},
hasOne: {
currencies: {
localField: 'currency',
localKey: 'currency_id'
}
}
}
};
다음을 사용하여 어댑터를 호출합니다.
covariancePredictions.findAll(params, {
with: ['currencies']
})
질문
knex
디버깅을 활성화 한 후 left join
문을 사용하지 않고 다음과 같은 후속 SQL 쿼리를 사용한다는 것을 알아 냈습니다 .
sql: 'select "currencies".* from "currencies" where "id" in (?, ?, ?, ?, ?, ?, ?)' }
누구든지 js-data-sql
DSSqlAdapter 를 left join
대신 빌드하는 방법을 알고 있습니까? 처럼:
select "covariance_predictions".id, [...], "currencies".code from "covariance_predictions" left join "currencies" on "currencies".id = "covariance_predictions".currency_id;
저는 js-data-sql
. 를 통해로드 된 모든 관계 with
가 요청 된 각 관계에 대해 후속 작업 을 수행하는 loadingWithRelations 를 사용하여 수행되므로 현재 지원되지 않습니다 select ... where "id" in (...)
.
로드 hasOne
와 belongsTo
원래 쿼리의 일부로서 확실히 통해 가능해야 left outer join
하지만, 아닌 inner join
원래 개체의 로딩 등은 관계 (들)의 존재에 의존하지 않는다.
내가 만든 github의 문제를 나는 그것이로 만들 수 있습니다 때 잘 모르겠어요하지만,이 변경 사항을 추적하기 위해 js-data-sql
또한 확장하는 동안 포트에 필요 JS-데이터 어댑터를 위한 js-data
3.0
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다