问题标签 [squeryl]
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 - 尝试使用 Squeryl 创建 OneToMany 关系时断言失败
我在数据库中有两个类,并希望建立一对多的关系。没什么复杂的。但是,我在 squeryl 的 _splitEquality 中遇到断言失败(第 576 行)。Squeryl 是 0.9.5 版
所以我有一个模式
foo 在哪里
酒吧是
但是,这在运行时会因前面提到的断言失败而失败,特别是:
assert(ee.right._fieldMetaData.isIdFieldOfKeyedEntity)
失败
scala - 如何让 Squeryl 与 Play 一起工作!框架?
我正在尝试学习如何使用 Play 和 Squeryl 制作一个简单的数据库应用程序。我已经从 Play 教程中制作了 Tasks 应用程序,但我想更改模型/架构,以便它使用 Squeryl 而不是 Anorm。我一直在查看不同的教程、示例和答案,但我还没有真正弄清楚如何做到这一点。
因此,鉴于Play Tutorial (ScalaTodoList)的源代码;我如何继续使它与 Squeryl 一起工作?
进一步来说:
- 如何在我的模型中实现
all()
、create()
和delete()
方法?(我想为任务使用自动递增的 ID) - 使用哪个数据库适配器当前是硬编码的
Build.scala
(Global.scala
见下文)。我怎样才能让它自动使用 H2 进行开发/测试和 Heroku 上的 Postgres,就像 Play 教程中的 Anorm 一样? - 如何确保它自动创建我的表?
这是我到目前为止所做的
我已经完成了 Play ScalaTodoList 教程。
在project/Build.scala
,object ApplicationBuild
中,我添加了依赖项:
添加app/Global.scala
(取自上面提到的SO 答案,只是将适配器更改为 H2):
在中,app/models/Task.scala
我添加了导入并删除了all()
、create()
和中的 Anorm 实现delete()
。Play 教程中的控制器期望该all()
方法返回List[Task]
。
其余文件保留在 Play 教程结束时的状态。
scala - 在 Scala 中动态生成案例类
我想读取一个相当大的 csv 文件并对其进行处理(切片、骰子、汇总等)interactively
(数据探索)。我的想法是将文件读入数据库(H2)并使用 SQL 来处理它:
阅读文件:我使用Ostermiller csv 解析器
确定每一列的类型:我随机选择50行,导出每一列的类型(int、long、double、date、string)
我想用Squeryl来处理。为此,我需要动态创建一个案例类。这就是目前为止的瓶颈!
我将文件上传到 H2 并使用任何 SQL 命令。
我的问题:
- 在 Scala 中有更好的通用交互方式吗?
- 有没有办法解决第三点?换一种说法,给定一个类型列表(对应于 csv 文件中的列),是否可以动态创建对应于 Squeryl 中的表的案例类?据我了解,我可以使用宏来做到这一点,但我没有足够的曝光率来做到这一点。
sql - PhoneGap + 数据库如何将结果保存在数据库中以及如何在页面中使用数据库存
我对 Javascript 的理解非常有限。我有一个简单的计算。A
B
并且C
是 3 个输入数字,我需要D
使用 Phonegap 和 jQuery 将结果保存在 iOS 数据库中以供将来使用。
这是我的简单 javascript
我的问题是如何将这些数据结果存储Math.round(d);
在电话差距数据库中并在每日页面结果中再次使用它?
谢谢。
scala - Squeryl:显式运行查询
当我在 squeryl 中创建查询时,它返回一个 Query[T] 对象。查询尚未执行,当我迭代 Query 对象时(Query[T] 扩展 Iterable[T]),查询尚未执行。
围绕查询的执行必须有一个 transaction{} 或一个 inTransaction{} 块。
我只是说 SELECT 查询和事务不是必需的,但是 squeryl 框架需要它们。
我想在我的应用程序模型中创建一个查询,并将其直接传递给模板中的视图助手对其进行迭代并呈现数据的视图。这只有在将 transaction{} 块放入控制器时才有可能(控制器包含模板的调用,因此执行迭代的模板也在内部)。不可能将 transaction{} 块放入模型中,因为模型并没有真正执行查询。
但据我了解,交易与控制器无关。由模型决定使用哪个数据库框架、如何使用它以及在哪里使用事务。所以我希望 transaction{} 块在模型中。
我知道我可以——而不是返回 Query[T] 实例——在这个 Query[T] 对象上调用 Iterable[T].toList,然后返回创建的列表。然后整个查询在模型中执行,一切都很好。但我不喜欢这种方法,因为从数据库请求的所有数据都必须缓存在这个列表中。我更喜欢将这些数据直接传递给视图的方式。我喜欢在结果集很大时流式传输结果集的 MySql 功能。
有没有可能?可能类似于将请求发送到数据库的函数 Query[T].executeNow() 能够关闭事务,但仍使用 MySQL 流功能并接收其余的(选择并因此固定)结果集它被访问了吗?因为结果集在查询时是固定的,所以关闭事务应该不是问题。
scala - 在 Squeryl ORM 的 WHERE 子查询中使用 gt、gte 等
我最近开始评估Squeryl ORM,它看起来很棒,但最后我遇到了一个 SQL 查询,它似乎很难用 Squeryl“构建”。
我想获得数量高于所有产品平均数量的所有产品。在 SQL 中,这看起来像
我已经发现 Squeryl 支持in()
,exists()
和notExists()
-clausewhere
子查询。但由于 Squeryl 也支持avg
聚合,我希望这样的事情是可能的:
可悲的是,这引发了:
当然,我可以在 2 个查询中做到这一点(首先,获取平均数量,然后在第二个查询中使用它)但我想知道是否可以使用一个包含 subquery 的查询来做到这一点。
这对 Squeryl 是不可能的,还是我只是错过了什么?
如果这是可能的,我会很感激任何帮助,如果,如何。
谢谢,
塞巴斯蒂安
scala - Squeryl ORM 使用 Long、bigint 和运算符失败?
Squeryl 只是今天没有它。我有一个令人讨厌的错误,到目前为止我没有成功解决。
Postgres 抛出的错误:
不知道为什么会抛出此错误,除了我将 Scala Long 存储在 bigint 字段中,然后对其运行查询。难道我做错了什么?
所有这些都在 Squeryl ORM 上运行,所以我 90% 确信我的类型是正确的。我的代码也可以编译。
编辑
这实际上是我用来查询的代码。不多...
scala - 在 Squeryl 的 where "clause" 中出现错误 "java.util.Date does not take parameters"
我对 Scala 相当陌生,目前对我们的 MySQL 数据库使用一个名为 Squeryl 的 ORM。
我要做的是查找属于某个时间范围的复数记录。例如,在纯 SQL 中,我认为它会是这样的:
但是,我的 Scala 代码实现了如下类似的行为,在“from(records)”中的左括号处给了我一个错误,说“java.util.Date 不接受参数”
(其中 val 记录 = tableRecord
我在这里做错了什么?提前非常感谢。
scala - How can I print the contents of a org.squeryl.dsl.Group?
Using Squeryl ORM and Scala. For the first time I did a JOIN statement that used grouping. Admittedly, I can't figure out how to start iterating through the contents.
Here's the JOIN:
How do I print out its contents?
I tried:
But got the compiler error:
mysql - Squeryl:插入时未更新 KeyedEntity.id
我有一个表定义
数据库表不是由 Squeryl 生成的(我手动创建的),但“ID”列设置为 PrimaryKey 和 AutoIncrement。
现在我在这个表中插入一行:
该行已正确插入数据库并分配了一个 ID (!=0)。但是应用程序在命令行上打印“ID1=0;ID2=0”。
为什么?以及如何获得分配的 ID?
编辑: 我也尝试过这种表定义
没有造成任何差异。