- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习 Squeryl 并试图理解“使用”语法,但找不到关于它的文档。
在以下示例中,创建了两个数据库,A 包含单词 您好 , B 包含 再见 .目的是查询A的内容,然后追加单词世界 并将结果写入 B。
预期的控制台输出为 插入消息(2,HelloWorld)
object Test {
def main(args: Array[String]) {
Class.forName("org.h2.Driver");
import Library._
val sessionA = Session.create(DriverManager.getConnection(
"jdbc:h2:file:data/dbA","sa","password"),new H2Adapter)
val sessionB = Session.create(DriverManager.getConnection(
"jdbc:h2:file:data/dbB","sa","password"),new H2Adapter)
using(sessionA){
drop; create
myTable.insert(Message(0,"Hello"))
}
using(sessionB){
drop; create
myTable.insert(Message(0,"Goodbye"))
}
using(sessionA){
val results = from(myTable)(s => select(s))//.toList
using(sessionB){
results.foreach(m => {
val newMsg = m.copy(msg = (m.msg+"World"))
myTable.insert(newMsg)
println("Inserted "+newMsg)
})
}
}
}
case class Message(val id: Long, val msg: String) extends KeyedEntity[Long]
object Library extends Schema { val myTable = table[Message] }
}
val results = from(myTable)(s => select(s))
using(sessionA){
results.foreach(m => {
val newMsg = m.copy(msg = (m.msg+"World"))
using(sessionB){myTable.insert(newMsg)}
println("Inserted "+newMsg)
})
}
最佳答案
首先,我为缺乏文档表示歉意。 using() 构造是仅在 SNAPSHOT 构建中可用的新功能。实际上,我昨天与 Max 讨论了早期采用者的一些文档问题,我们正在努力解决这些问题。
我无法想到将特定 session 绑定(bind)到查询的方法。查看您的示例,看起来一个简单的解决方法就是反转您的交易。当您创建查询时,Squeryl 实际上并不访问数据库,它只是创建一个表示要执行的 SQL 的 AST,因此您此时不需要发出 using(sessionA)。然后,当您准备好迭代结果时,您可以将查询调用包装在嵌套在 using(sessionB) 中的 using(sessionA) 中。那有意义吗?
关于scala - Squeryl session 管理与 'using',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8392611/
我不确定 squeryl 在这里想告诉我什么: 错误:无法证明 org.squeryl.dsl.fsm.Unconditioned =:= org.squeryl.dsl.fsm.Conditione
当我在 squeryl 中创建查询时,它返回一个 Query[T] 对象。查询尚未执行,当我迭代 Query 对象时(Query[T] 扩展 Iterable[T]),查询尚未执行。 围绕查询的执行必
我在 mysql 数据库中有一个名为 group 的表。当我将此表映射到 squeryl 时,我收到 SQL 语法错误,因为表名组没有被引用(应该是 select * from `group`)。 有
如何在 squeryl 模式中定义列组合的唯一约束? A | B 2 1 allow 2 3 allow 3 1 allow 2 1 don't allo
我正在编写一个简单的 Scala 和 Squeryl 应用程序。出于测试目的,每次我在 sbt 中运行“test”时,都会创建一个内存中的 H2 数据库并填充测试数据。每次运行后,我可以看到任务管理器
如何在 squeryl 模式中定义列组合的唯一约束? A | B 2 1 allow 2 3 allow 3 1 allow 2 1 don't allo
如何使用 squeryl 存储用户案例对象?我有一个 Account 对象,其权限字段类型为 Permission(定义为密封特征)。我还有 2 个案例对象(Administrator 和 Norma
如何使用 Squeryl 保留集合字段(例如 List[String] 或 Set[Int] )?编码它以便 Squeryl 不会创建关联表的最佳方法是什么? 最佳答案 您也许应该考虑编写自己的类型。
我正在使用Squeryl使用 MySQL 数据库。这些表采用 utf8mb4 编码。现在我想通过Squeryl将一些utf8(4字节)字符串插入到数据库中。我该怎么做? 我尝试将 ?useUnicod
使用 Play ! 1.2.4、Scala 和 Squeryl 与 Postgres 像往常一样执行一个简单的数据库插入,突然间数据库开始疯狂地抛出 NullPointerExceptions。当我创
我正在尝试将 Card 与 Part 连接起来,然后将总 Stock 值左连接到一个部分(有些部分没有库存行)。 我有以下我认为可行的.. def stockPerBase = from(stock)
我想使用 VARCHAR(255) 或 TEXT MySQL 数据类型来存储科学文章的名称。Squeryl 创建 VARCHAR(128) 字段来存储字符串。如何配置它以使用更大的字段? 最佳答案 来
我研究了使用 squeryl 从表中删除所有记录的方法。我唯一能想到的就是 myTable.deleteWhere(r => r.id.isNotNull) //id is the primary
如何使用 Squeryl 设置事务隔离级别? 例如,现在我正在使用 Postgresql 并且需要对特定的单个事务进行可序列化隔离。我将纯 Squeryl 和 Squeryl-Record 与 Lif
我正在学习 Squeryl 并试图理解“使用”语法,但找不到关于它的文档。 在以下示例中,创建了两个数据库,A 包含单词 您好 , B 包含 再见 .目的是查询A的内容,然后追加单词世界 并将结果写入
我正在尝试在查询中选择某个表的全部。我必须指定一个 where 子句(或者我 tihnk),那里面有什么? def all() = transaction { from(AppDB.users)(s
做一个简单的 Squeryl 数据库查找,但试图排除一个值。我试过了: j.id not jobExclude和 j.id != jobExclude 但是第一个触发编译器错误,第二个触发运行时错误。
所以当我阅读 Play for Scala本书,我遇到了书中解释的一些奇怪的事情。这是相关的片段: There's something strange going on, though. If you
我无法调试(简单运行即可正常)我的单元测试。 Squeryl 失败并出现以下异常: error while reflecting on metadata for (Some(private scala
有人可以告诉我如何在 squeryl 中显式处理事务回滚吗? 我们如何动态添加或删除 squeryl 中的列? 谢谢... 最佳答案 只是为了详细说明@didierd 的回复。每个事务都绑定(bind
我是一名优秀的程序员,十分优秀!