- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Anorm做数据库查询。当我执行 executeUpdate()
时,我应该如何进行正确的错误处理?它有返回类型 MayErr[IntegrityConstraintViolation,Int]
,这是一个 Set 还是一个 Map?
有一个example ,但我不明白我应该如何处理返回值:
val result = SQL("delete from City where id = 99").executeUpdate().fold(
e => "Oops, there was an error" ,
c => c + " rows were updated!"
)
如何检查查询是否失败? (使用 result
),如果查询成功,如何获取受影响的行数?
目前我使用这段代码:
SQL(
"""
INSERT INTO users (firstname, lastname) VALUES ({firstname}, {lastname})
"""
).on("firstname" -> user.firstName, "lastname" -> user.lastName)
.executeUpdate().fold(
e => "Oops, therw was an error",
c => c + " rows were updated!"
)
但我不知道我的错误处理代码应该是什么样子。有没有关于如何使用 MayErr[IntegrityConstraintViolation,Int]
类型的返回值的示例?
最佳答案
看起来像MayErr
正在包装 Either
.所以它既不是 Map
也不是 Set
,而是一个可以包含两个不同类型对象之一的对象。
看看this question ,您将看到一些处理 Either 对象的方法,在本例中,该对象包含 IntegrityConstraintViolation 或 Int。引用http://scala.playframework.org/.../Scala$MayErr.html ,看起来您可以通过引用值成员 e
来获取 Either 对象.似乎也有一个隐式转换可用,所以你可以只处理 MayErr[IntegrityConstraintViolation,Int]
作为Either[IntegrityConstraintViolation,Int]
没有进一步的仪式。
关于scala - 我应该如何在 Scala 和 Anorm 中使用 MayErr[IntegrityConstraintViolation,Int]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6323961/
这是顺序: App1:在数据库中保留 ID=1 的实体。没问题。 App2:外部应用程序删除 ID=1 的同一记录。没问题。 App1:尝试再次持久化 App2 之前删除的实体,这里抛出一个异常,提示
我使用 Anorm做数据库查询。当我执行 executeUpdate() 时,我应该如何进行正确的错误处理?它有返回类型 MayErr[IntegrityConstraintViolation,Int
我是一名优秀的程序员,十分优秀!