我研究了使用squeryl从表中删除所有记录的方法.我唯一能想到的是
myTable.deleteWhere(r => r.id.isNotNull) //id is the primary key
这似乎很奇怪,可能效率很低.
使用squeryl时,从表中删除所有记录的最干净方法是什么?
解决方法:
deleteWhere子句采用任何逻辑布尔值,因此您可以简单地说:
myTable.deleteWhere(r => 1 === 1)
应该输出以下语句:
DELETE FROM mytable WHERE 1 = 1
如果要自动消除where子句,可以尝试:
myTable.deleteWhere(r => 1 === 1.inhibitWhen(true))
哪个应该完全禁止where子句.
如果您正在寻找一种更高效的方法,并且您的数据库支持TruncATE或其他等效功能,则可以从org.squeryl.Session
获取java.sql.Connection并直接通过JDBC发出查询.不幸的是,这将丢失Squeryl提供的某些类型的安全性.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。