Я разбиваю длинную строку на массив строк, а затем хочу вставить их все в базу данных. Я могу легко пройти через массив и вставить один за другим, но он кажется очень неэффективным. Тогда я думаю, что есть метод insertAll()
. Однако метод insertAll()
определяется следующим образом:Scala Slick Bulk Insert with Array
def insertAll(values: U*)
Это принимает только несколько U, но не Array
или List
.
/* Insert a new Tag */
def insert(insertTags: Array[String])(implicit s: Session) {
var insertSeq: List[Tag] = List()
for(tag <- insertTags) {
insertSeq ++= new Tag(None, tag)
}
Tag.insertAll(insertSeq)
}
* Tag
является таблица объектов
Это предварительный код, который я написал. Это не работает, потому что insertAll()
не принимает Seq
. Я надеюсь, что есть способ сделать это ... поэтому он не будет генерировать длину массива раз в SQL-вставку.
Этот маркер аргумента последовательности ': _ *' применяется только к 'Seq' или относится к другим коллекциям? Как работает ': _ *', если вы не возражаете, чтобы я спросил? Это метод? Встроенная итерация? –
См. Http://stackoverflow.com/questions/1124099/what-is-the-meaning-of-colon-underscore-and-star-in-lifts-sitemapentries и http://stackoverflow.com/questions/1124099/ то, что-это-заместитель означает, из толстой кишки-подчеркивания-и-звезды-в-лифтовых-sitemapentries. – OlivierBlanvillain