sql
interporlator позволяет классы случае в результате данного экземпляра GetResultКак я могу использовать классы case с slicks TSQL-интерполятором?
val action:DBIO[Seq[VisibilityRow]] = sql"SELECT * FROM visibility".as[VisibilityRow] //compiles fine
Checking the docs, я не вижу пример использования tsql
наряду с тематическим классом.
я решил просто попробовать его
val action2:DBIO[Seq[VisibilityRow]] = tsql"SELECT * FROM visibility"
Однако я получаю ошибки
[error] ... : type mismatch;
[error] found : slick.profile.SqlStreamingAction[Vector[(Long, String, java.sql.Timestamp, java.sql.Timestamp, java.sql.Timestamp)],(Long, String, java.sql.Timestamp, java.sql.Timestamp, java.sql.Timestamp),slick.dbio.Effect]
[error] required: slick.driver.PostgresDriver.api.DBIO[Seq[com.fevo.slick.Schema.VisibilityRow]]
[error] (which expands to) slick.dbio.DBIOAction[Seq[com.fevo.slick.Schema.VisibilityRow],slick.dbio.NoStream,slick.dbio.Effect.All]
[error] val action2:DBIO[Seq[VisibilityRow]] = tsql"SELECT * FROM visibility"
Есть элегантный способ для меня, чтобы извлечь эти типы с использованием tsql
, я мог бы карту над применить но тогда мне все же необходимо указать (и обновить) тип кортежа для параметра DBIO
.
я не уверен, я понимаю ваше последнее предложение. Вы должны уметь: 'tsql 'SELECT * FROM visibility" .map (_. Map (VisibilityRow.apply.tupled)) '. Думаю, ты говоришь, что не хочешь этого? – jkinkead
Да, это мое недоразумение, я думал о том, что макрос преуспел. Мне нужно было указать типы, теперь я понимаю (пробовал ваш код), который не соответствует действительности. Если вам нравится, вы можете превратить это в ответ и плохо принять. Так как классы моего класса имеют параметры (некоторые поля не требуются), я не могу напрямую сопоставлять их, но это, вероятно, совершенно новый вопрос. –
Ответить добавил. Рад, что смог помочь! – jkinkead