0
기본적으로 테이블을 두 개의 목록으로 분리하는 where 절이 있습니다. 모든 필드가 "완료"(-1이 아님) 한 필드와 필드가 불완전한 필드. 문제는 이러한 필드 중 하나가 nullable 일뿐만 아니라 다른 필드가 true이면 불완전한 것으로 계산하기를 원합니다. Squeryl Nullable Column이있는 Where 절은 효과가 없습니다.
//l and p are my two tables(This is in a join)
//passed in an option incompletes. If incompletes is true, give back incomplete values
where(
//SHOW INCOMPLETES
(
p.attr1 === -1 or
p.attr2 === -1 or
p.attr3 === -1 or
//only need to check attr4 if this var is true
(p.attr4 === -1).inhibitWhen(!l.needToCheckAttr4) //I've also tried === Some(-1)
).inhibitWhen(!incompletes.isDefined) and
// SHOW COMPLETES
(
p.price <> -1 and
p.serverCost <> -1 and
p.depreciation <> -1 and
(p.attr4 <> -1).inhibitWhen(!l.needToCheckAttr4)
).inhibitWhen(incompletes.isDefined)
)
attr4 라인 동안 조건의 나머지 모든 작업이 제대로 적용되지 것 같다 : 절은
. 그것은 다른 조건들이 사실이라면 그것이 완성 된 것처럼 렌더링됩니다.
편집 : 그래서 inhibitWhen과 통화하는 것이 좋습니다. 한 줄에 두 개의 다른 표를 사용하는 데 문제가 있습니까 (l 및 p)? 좋아
그래. inhibitWhen을 사용하여 클라이언트 측 조건을 검사합니다. 절이 데이터베이스 상태를 사용한다면 inhibitWhen이 적절하지 않을 것입니다. –