Не удается получить доступ к методу удаления по запросу Slick

Это очень, очень, очень расстраивает. Я пытался поднять Слик некоторое время, и препятствия просто продолжают появляться. Концепция Slick действительно потрясающая, но ее очень трудно освоить, и, в отличие от Scala, она не имеет стиля «новичок», «промежуточный» и «продвинутый», где люди на всех этапах могут легко ее использовать.

Я использую Play-Slick (Slick 2.0.0) https://github.com/freekh /play-slick , следуя примеру торта из нескольких баз данных: https://github.com/freekh/play-slick/tree/master/samples/play-slick-cake-sample/app

По какой-то причине, во-первых, ddl не принадлежит TableQuery, в отличие от утверждения в документе: «Метод ddl TableQuery создает DDL». Это видно из скалярного документа: http: //slick. typesafe.com/doc/2.0.0/api/#scala.slick.lifted.TableQuery Нет метода ddl есть.

Во-вторых, мой slick.lifted.Query не может сгенерировать delete метод. Он отлично работает с list, но не с delete.

val S3Files = TableQuery[S3Files]
S3Files.where(_.url === url).delete

Это не сработает ... тогда я попробовал:

val query = (for(s <- S3Files if s.url === url) yield s)
query.list  //this works
query.delete //ehh?? can't find the method

val query2 = (for(s <- S3Files if s.url === url))
query2.delete //still won't work

Ну ... поскольку Slick использует очень сложную (по крайней мере, для новичков) систему неявного преобразования типов, я не знаю, что пошло не так.

4 голоса | спросил windweller 10 MaramMon, 10 Mar 2014 02:09:02 +04002014-03-10T02:09:02+04:0002 2014, 02:09:02

2 ответа


0

Я попробовал это, просто добавив

Cats.ddl.create
Cats.filter(_.name===cat.name).delete
от

до play-slick-cake-sample/app/controllers/Application.scala. У меня отлично работает.

Похоже, вы используете неправильный импорт. Посмотрите на https: //github.com/freekh/play-slick/blob/master/samples/play-slick-sample/app/controllers/Application.scala и имитировать импорт.

ответил cvogt 12 PMpSat, 12 Apr 2014 16:32:03 +040032Saturday 2014, 16:32:03
0

slick 0.8.1 и slick 2.1.0, и у меня была та же проблема.

Причина, по которой удаление недоступно в запросе, заключается в том, что в запросе play-slick отсутствует эквивалентный метод метода удаления из скользкого запроса.

Я решил эту проблему, изменив оригинальный драйвер

//import play.api.db.slick.Config.driver.simple._ //play-slick extensional Driver
import slick.driver.PostgresDriver.simple._       //original slick Driver
ответил Niels 7 PMpTue, 07 Apr 2015 17:58:59 +030058Tuesday 2015, 17:58:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132