我有一个 sql 视图 V,它与表 X 具有 0:1 对应关系。我想将此视图连接到另一个表 Y 上,该表具有对 X(类型 XId)的引用。我已经指定了视图,就像我在持久性中指定的任何其他表一样。V 的 id 列是对 X 的引用,但是在持久化中将视图声明为表自然会给它类型 VId 而不是 XId。所以我不能将视图加入到 Y 上,因为类型不匹配。
我意识到我可以用 rawSQL 做到这一点,但我的查询也有一个 IN 子句,它似乎不能很好地处理值列表(使用 rawSQL)。另一种选择是在视图中选择 XId 列两次,并在模型定义中将额外的列指定为具有 XId 类型。最后,我可以退回到内联插入视图查询或完全使用原始 sql 进行查询,跳过持久性的插值。
有没有办法在不诉诸上述方法的情况下做到这一点?如果可能的话,我更喜欢使用 esqueleto。