0

Elixir 宣言層に問題があります。モデルのすべてのインスタンスについて、次のように特定の列のデータを取得したいと考えています。

File.query.values("column")

問題は、フィルタリングされたクエリでのみ機能し、例の単純なクエリでは次のエラーで失敗することです:

Could not locate a bind configured on SQL expression or this Session

この種のものは Elixir のバグのように見えますが、回避策を見つけることができず、機能するはずの方法で何かを見落としている可能性があります。

4

1 に答える 1

2

フォームを使用する

File.query.values(Table.column)

そしてそれはうまくいくはずです。ジェネレーターを返すので、 list() でラップしてシーケンスを取得します。この対話型出力の例を参照してください。

>>> User.query.values('display_name')
Traceback (most recent call last):
  File "<console>", line 1, in ?
[snip traceback]
UnboundExecutionError: Could not locate a bind [ ... ] or this Session
>>> User.query.values(User.display_name).next()
(u'Vinay Sajip',)

ところで、特に Elixir の問題ではありません。Elixir エンティティのクエリ プロパティから返されるクエリは、標準の SQLAlchemy クエリ オブジェクトです。Query.values() の SQLAlchemy ドキュメントに注意してください。

指定された列のリストに対応する結果タプルを生成する反復子を返します

于 2010-12-05T23:57:00.907 に答える