首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ScalaQuery修改现有记录?

如何使用ScalaQuery修改现有记录?
EN

Stack Overflow用户
提问于 2011-11-28 11:38:41
回答 1查看 945关注 0票数 3

修改是指SQL更新和删除的对应项。

在这两种情况下,我都有一个对象记录,我想在数据库中删除它。该表始终具有主键,并且它被设置在我的对象记录中。

请注意,我没有查询或其他“创建”对象记录的源,我所拥有的只是它和表。一般来说,它看起来是这样的:

代码语言:javascript
复制
fetch the Record from Table
...
// forget how I get the Record
...
Record.person_name = "joe"
? update Record ?

怎么做?

我将记录和表格定义如下:

代码语言:javascript
复制
case class Topic(var id : Long,
                 var sectionId : Int,
                 ...

object TopicTable  extends Table[Topic]("Topic") {
       def id = column[Long]("top_Id", O.PrimaryKey) 
       def sectionId = column[Int]("sect_Id")
       ...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-29 16:22:58

似乎没有直接的方法,所以你必须显式地创建一个记录集来修改(为了比较-我知道SQ不是ORM --在EF中你获取记录,修改它们,此时你的数据上下文“知道”它们被修改了,所以你要做的就是提交修改)。

因此,首先,您可以根据自己的喜好创建RS:

代码语言:javascript
复制
val rs = for (rec <- MyTable if rec.id===10) yield rec;

和删除记录:

代码语言:javascript
复制
rs.mutate(rec => rec.delete())

关于最新情况:

代码语言:javascript
复制
rs.update(new MyRecord(...))

或者(流言蜚语更快;-)

代码语言:javascript
复制
rs.mutate(rec => rec.row = new MyRecord(...))

请注意,我是一个完全的新手,与SQ,所以我可能只是误导你。不过我是为自己工作的。

现在,唯一缺少的部分是添加一些很好的包装,所以删除和更新可以直接完成每条记录。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8295266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档