2012-12-01 4 views
0

사용 된 데이터베이스의 정의는 인스턴스 개체입니다. 맞습니까? 내가 어떻게 "부착 가능"하게 만들 수 있습니까?어떻게 SORM 인스턴스를 분리 할 수 ​​있습니까?

왜? 예를 들어 테스트에서 사용 된 데이터베이스를 변경하는 것이 좋습니다. 나는 약간의 암시 적 정의를 시도하지만 성공 ...

+0

나는 당신이 "부착 가능한"것을 암시하는지 잘 모르겠습니다. 당신은 더 구체적 일 수 있습니까? SORM 인스턴스를 테스트하는 방법에 관해서는 SORM의 테스트 자체에서 수행되는 작업을 항상 확인할 수 있습니다. –

답변

0

내 솔루션 :

case class Artist (name : String, genre : Genre) 

object Artist { 
    def save(name: String, genre: Genre)(implicit Db: Instance) { 
    ... 
    Db.save(...) 

    } 
} 

내가 필요로 할 때 다음, 나는 데이터베이스로 사용하는 암시 적 인스턴스를 정의합니다.

+0

'Db extends Instance ... '가 머리를 망치는 것처럼 보입니다. 문제는 인스턴스를 싱글 톤으로 가질 의무가 없다는 것입니다. 인스턴스를 클래스로 선언하거나 인스턴스 클래스를 직접 사용할 수 있습니다. "객체 Db"접근 방식은 일반적인 유스 케이스입니다. 또한이 컴패니언 객체 접근법은 지나치게 복잡하게 보입니다. 인스턴스를 클래스의 로컬 변수 또는 사용중인 함수로 간단히 가질 수 있습니다. –

관련 문제