次の依存関係を持つ新しい名前空間を作成してみてください。
(ns yourproject.path.kormastuff
(:use [korma.core]
[korma.db]))
次に、そのようにエンティティを作成します。
(defentity items
(entity-fields :item))
コアのエイリアスを作成しようとしていて、データベースが欠落しているため、おそらく壁にぶつかっていると思います。このようなものを独自のファイルにプッシュし、他の名前空間から、必要に応じてエイリアスを使用して、必要なクエリを呼び出すことをお勧めします。
(ns project.core
(:use [project.path.kormastuff :as kormadb]))
それで:
(select kormadb/items)
あなたの結果を得るために。それはうまくいくはずです。
REPLに、次のように入力するだけです。
items
コマンドプロンプトに移動して、Kormaが提供する出力を確認します。他のフィールドは表示されないはずです。REPLで実行(アイテムを選択)すると、それを実行したいかどうかに関係なく、すべてが表示されます。実際の出力を取得するには、ブラウザウィンドウなどで( "%s"アイテムのフォーマット)を実行する必要があります。
それでもうまくいかない場合は、通常の(select db(fields [:item]))句を使用しても問題ありません。とにかく情報を使用するために構造を解除することを余儀なくされることに気付くでしょう。
編集:::::::
申し訳ありませんが、はっきりと説明していませんでした。
あなたはするべきではありません
(select kormadb/items)
あなたが欲しいものを手に入れるために。エンティティ自体を呼び出す必要があるだけなので、REPL内のアイテムを呼び出すだけでよく、REPL内のアイテムを呼び出す必要はありません(アイテムを選択)。
あなたは次のようなことをしたいと思うでしょう
(def myQuery kormadb/items)
$ myQuery
デフォルトで他のフィールドが選択されていないことがわかります。
あなたもすることができます
(let [myQuery kormadb/items]
(format "%s" myQuery))
私はここで変更していますが、私が得るものはこれに似ています:
{:table "items", :name "items", :pk :id, :db nil, :transforms (), :prepare
s (), :fields ("\"items\".\"item\""), :rel {}}
myQueryを使用するには、上記のハッシュマップを分解する必要があります。破壊は重要であり、自分の手を汚さない限り学ぶのは難しいので、それはあなたが学ぶための練習として残しておきますが、答えが得られないが勝った小さな出発点を提供しますエラーもスローしません:
(let [{myAlias :fields} myQuery]
(format "%s" myAlias))