2010-06-30 4 views
3

내 예를 들어 datamapper 클래스DataMapper, 여러 레코드를 만드는 방법은 무엇입니까?

class Simple 
    include DataMapper::Resource 
    property :id, Serial 
    property :uid, Integer 
end 

그리고 내가 추가하고 싶습니다 배열 아이디 UID의의가있다.

: 나는

Simple.all(:uid.in=>items) 

같은 일을 할 것입니다 배열의 아이디의의를 검색하고 싶다면

items=[1,2,3,4,5,6,7,8,9,1,1,1,2,2,2,3] 

등의 여러 레코드를 만드는 동일한 기능을 수행 할 수있는 방법이 있나요

Simple.create(:uid=>items) #this doesn't work by the way 

이 주위에 방법은 다음과 같습니다

items.each{|item|Simplel.create(:uid=>item)} 
,

하지만 이것은 효율적 일 수는 없습니다. 더 좋은 방법이 있어야합니다.

답변

0

SQL 레이어에 대량 삽입 작업을 인식하지 못합니다. data_mapper가 추상화 계층 인 SQL 데이터베이스를 생각해보십시오. 각 데이터베이스 작성자/제조업체가 자체 도구 (예 : Oracle 용 SQLLDR, MS SQL Server 용 BCP)를 구현했음을 기억하십시오.

추상화 계층에서이를 단일 인터페이스로 가져올 방법이 없습니다.

관련 문제