问题标签 [play-slick]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Slick:动态创建查询连词/析取词
我正在尝试为 Slick 表创建一个类型安全的动态 DSL,但不知道如何实现这一点。
用户可以通过以 form/json 格式发送过滤器来将过滤器发布到服务器,我需要用所有这些构建一个 Slick 查询。
所以基本上这意味着将代表我的过滤器的 Scala 案例类转换为 Slick 查询。
似乎“谓词”可以有 3 种不同的形状。我已经看到了特质CanBeQueryCondition
。我可以折叠这些不同的可能形状吗?
我已经看过扩展方法&&
,||
并且知道与此有关,但我只是不知道该怎么做。
基本上,我有一个谓词列表,它采用以下类型:
或者
对我来说的问题是,对于所有 3 种具有 a 的不同类型,没有一个超类型CanBeQueryCondition
,所以我真的不知道如何折叠谓词,&&
因为一旦添加到列表中,这些不同形状的谓词采用非常通用的类型List[(PatientTable) => Column[_ >: Boolean with Option[Boolean]]]
.
另外,我不确定什么可以被视为 Slick 中的谓词。一个可组合的谓词似乎是Column[Boolean]
,但实际上该filter
方法只接受类型的参数(PatientTable) => Column[Boolean]
slick-2.0 - slick 如何执行 LIKE 查询
我正在玩 PlayScala 和 Slick。但在 Slick2 中如何执行 Like 查询。任何文档都会更有帮助
SQL:
scala - 在 Scala/Slick 中,如何像这样重构代码(响应拦截)?
以下是代码:
这些代码出现了很多次,真的很烦
有没有人有关于在 Slick 中重构这个的想法?
scala - 从 Slick 2 查询中获取对象和列表的元组
我有这个查询应该得到一个消息列表及其发件人信息及其收件人列表(考虑groupID和senderID函数参数):
但是结果,当我想要一个(Message, User, List[Recipient])的元组时,我得到了一个(Message, User, Recipient)的元组。我如何设法得到这样的结果?
谢谢你们。
playframework - 在 Play Framework 2.3 中,如何配置和应用进化到内存数据库?
使用我的 Play 2.3.8/Slick 2.1 应用程序,我试图弄清楚如何在我的 application.conf 中设置多个数据库(MySQL 和 MySQL 模式下的内存数据库),其中一个被自动用于测试。我想我已经接近了,但它给了我这个错误:
我在那里看到了很多相关的问题/文档,但它要么已经过时,要么与我想要做的不完全匹配。
这是我的 application.conf 中的内容
我意识到,为了让它工作,我可能需要将我的进化脚本复制到一个 conf/evolutions/test 目录中,所以我这样做了。我还想知道是否可以对其进行符号链接,以避免需要维护两个副本。
这是我的 Spec2 测试之一:
这是用于填充表格的 TestData 类:
怎么了?我是否在做任何被认为是不好的做法?
slick - 如何使用可选外键查询 Slick 以返回所有有和没有关系的记录?
我在 Event 上定义了一个可选的外键,它转到 EventType。我想查询所有事件,即使是那些具有无(空)事件类型的事件。这是在 Event 上定义的外键。
我的初始查询如下,但它只返回那些确实设置了外键的记录,因为外键是可选的。如何?
我希望在没有外键集的情况下查看所有带有 AND 的事件。
mysql - Slick 3 - 不生成外键
我似乎找不到解决这个奇怪错误的方法:
并且配置文件类仅包含一个 id 字段。Identifiable 提供 id 属性。
我将 Slick 3 与 MySQL 一起使用。
对于 Names,生成 Profiles 的 foreignKey,对于 PhoneNumbers 则不生成。为什么?好像没什么区别?
更新:
以下是相关声明:
和:
完整输出:
创建表PROFILE
(id
INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,userId
INTEGER NOT NULL)
创建表VERSION
( id
INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, timestamp
INTEGER NOT NULL, vector
INTEGER NOT NULL)
创建表NAME
(id
INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,firstName
TEXT NOT NULL,lastName
TEXT NOT NULL,profileId
INTEGER NOT NULL,versionId
INTEGER NOT NULL)
创建表PHONENUMBER
(id
INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,number
TEXT NOT NULL,kind
TEXT NOT NULL,profileId
INTEGER NOT NULL,versionId
INTEGER NOT NULL)
创建表VIEW
( id
INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY) 创建表PHONENUMBERS_VIEWS
( phoneNumber
INTEGER NOT NULL, view
INTEGER NOT NULL)
创建表CREDENTIALS
(id
INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,username
TEXT NOT NULL,password
TEXT NOT NULL,userId
INTEGER NOT NULL)
创建表USER
(id
INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY)
创建表API_KEY
(id
INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,token
TEXT NOT NULL,deviceId
TEXT NOT NULL,credentialsId
INTEGER NOT NULL)
更改表PROFILE
添加约束user_fk
外键(userId
)引用USER
(id
)更新时无操作删除无操作
更新时更改表NAME
添加约束profile_fk
外键(profileId
)引用PROFILE
(id
)删除 CASCADE 时不操作
更改表NAME
添加约束version_fk
外键(versionId
)引用VERSION
(id
)更新时无操作删除无操作
更新时更改表PHONENUMBER
添加约束profile_fk
外键(profileId
)引用PROFILE
(id
)删除 CASCADE 时不操作
更改表PHONENUMBER
添加约束version_fk
外键(versionId
)引用VERSION
(id
)更新时无操作删除无操作
alter table PHONENUMBERS_VIEWS
add constraint phoneNumber_fk
foreign key( phoneNumber
) references PHONENUMBER
( id
) on update NO ACTION on delete NO ACTION alter table PHONENUMBERS_VIEWS
add constraint view_fk
foreign key( view
) references VIEW
( id
) on update NO ACTION on delete NO ACTION
更改表CREDENTIALS
添加约束user_fk
外键(userId
)引用USER
(id
)更新时无操作删除无操作
更改表API_KEY
添加约束credentials_fk
外键(credentialsId
)引用CREDENTIALS
(id
)更新时无操作删除无操作
` 符号由于降价而被隐藏,但在原始输出中
编辑 2:
playframework - play-slick 1.0.0:无法定义类型为 java.sql.Date 的列
我目前正在尝试使用 play-framework 2.4.0-RC5 和 play-slick 1.0.0-RC3 定义一个灵活的模式,如下所示:
在编译时,scala 失败并出现错误:
根据光滑的文档, java.sql.Date 应该支持开箱即用,那么我在这里做错了什么?任何帮助是极大的赞赏。
mysql - Play-Slick 在路由中生成错误
我试图开始使用 Slick and Play Framework,但我不断收到这些错误。
我在库依赖项中添加了 slick、play-slick 和 mysql 连接器,还在 application.conf 中添加了以下几行:
我收到以下错误:
mysql - 播放 2.4 - Slick 3.0.0 - 删除不起作用
我正在尝试升级到 Slick 3.0.0 和 Play 2.4 (Scala),但删除行不起作用。在下面的代码中,一切正常:查询所有行,插入和更新 - 除了删除。
该代码生成以下编译错误:
我在application.conf中使用slick.driver.MySQLDriver$/com.mysql.jdbc.Driver,models.Tables.scala文件是slick-codegen lib自动生成的。
谁能帮我解决这个问题?谢谢!