Я использую Slick Plain SQL, и у меня есть примерно такая схема таблицы:
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(191) NOT NULL
);
CREATE TABLE images (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
url VARCHAR(191) NOT NULL,
user_id INT NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id)
ON DELETE CASCADE ON UPDATE CASCADE
);
и класс case, который выглядит так:
case class User(name: String, imageUrls: Array[String])
Можно ли написать мой запрос и неявный GetResult
, чтобы я мог сделать что-то вроде этого:
val u = Q.query[String, User]("""
SELECT
users.name, images.url
FROM
users
INNER JOIN images ON images.user_id = users.id
WHERE
users.name = ?
""").first(name)